mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge with upstream master
This commit is contained in:
commit
0b238b9c45
@ -22,13 +22,13 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.apimgt.annotations</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - API Management Annotations</name>
|
||||
<description>WSO2 Carbon - API Management Custom Annotation Module</description>
|
||||
|
||||
@ -21,12 +21,12 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<artifactId>org.wso2.carbon.apimgt.application.extension.api</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>WSO2 Carbon - API Application Management API</name>
|
||||
|
||||
@ -22,12 +22,12 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<artifactId>org.wso2.carbon.apimgt.application.extension</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - API Application Management</name>
|
||||
|
||||
@ -21,13 +21,13 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.apimgt.handlers</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - API Security Handler Component</name>
|
||||
<description>WSO2 Carbon - API Management Security Handler Module</description>
|
||||
|
||||
@ -13,13 +13,13 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.apimgt.integration.client</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - API Management Integration Client</name>
|
||||
<description>WSO2 Carbon - API Management Integration Client</description>
|
||||
|
||||
@ -13,13 +13,13 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.apimgt.integration.generated.client</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - API Management Integration Generated Client</name>
|
||||
<description>WSO2 Carbon - API Management Integration Client</description>
|
||||
|
||||
@ -22,13 +22,13 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.apimgt.webapp.publisher</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - API Management Webapp Publisher</name>
|
||||
<description>WSO2 Carbon - API Management Webapp Publisher</description>
|
||||
|
||||
@ -22,13 +22,13 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - API Management Extensions Component</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>application-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>application-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>certificate-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>certificate-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,13 +21,13 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>certificate-mgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.certificate.mgt.core</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - Certificate Management Core</name>
|
||||
<description>WSO2 Carbon - Certificate Management Core</description>
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>certificate-mgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - Certificate Management Component</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -29,10 +29,13 @@ public class Adapter {
|
||||
@ApiModelProperty(value = "Attached stream name:version")
|
||||
private String eventStreamWithVersion;
|
||||
@ApiModelProperty(value = "Adapter type")
|
||||
private AdapterType adapterType;
|
||||
private TransportType adapterType;
|
||||
@ApiModelProperty(value = "Adapter main configurations")
|
||||
private AdapterConfiguration adapterConfiguration;
|
||||
|
||||
@ApiModelProperty(value = "Adapter definition", notes = "use only when creating adapter as a String")
|
||||
private String definition;
|
||||
|
||||
public String getAdapterName() {
|
||||
return adapterName;
|
||||
}
|
||||
@ -49,11 +52,11 @@ public class Adapter {
|
||||
this.eventStreamWithVersion = eventStreamWithVersion;
|
||||
}
|
||||
|
||||
public AdapterType getAdapterType() {
|
||||
public TransportType getAdapterType() {
|
||||
return adapterType;
|
||||
}
|
||||
|
||||
public void setAdapterType(AdapterType adapterType) {
|
||||
public void setAdapterType(TransportType adapterType) {
|
||||
this.adapterType = adapterType;
|
||||
}
|
||||
|
||||
@ -65,4 +68,12 @@ public class Adapter {
|
||||
AdapterConfiguration adapterConfiguration) {
|
||||
this.adapterConfiguration = adapterConfiguration;
|
||||
}
|
||||
|
||||
public String getDefinition() {
|
||||
return definition;
|
||||
}
|
||||
|
||||
public void setDefinition(String definition) {
|
||||
this.definition = definition;
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,6 +18,8 @@
|
||||
package org.wso2.carbon.device.mgt.jaxrs.beans.analytics;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -30,15 +32,15 @@ public class AdapterMappingConfiguration {
|
||||
@ApiModelProperty(value = "Input mapping for json,text and xml mappings")
|
||||
private String inputMappingString;
|
||||
@ApiModelProperty(value = "Input mapping for json,map and xml mappings")
|
||||
private List<MappingProperty> inputMappingProperties;
|
||||
private List<MappingProperty> inputMappingProperties = new ArrayList<>();
|
||||
@ApiModelProperty(value = "Name-scape mapping for xml mapping")
|
||||
private List<MappingProperty> namespaceMappingProperties;
|
||||
private List<MappingProperty> namespaceMappingProperties = new ArrayList<>();
|
||||
@ApiModelProperty(value = "Correlation mapping for wso2 mapping")
|
||||
private List<MappingProperty> correlationMappingProperties;
|
||||
private List<MappingProperty> correlationMappingProperties = new ArrayList<>();
|
||||
@ApiModelProperty(value = "Payload mapping for wso2 mapping")
|
||||
private List<MappingProperty> payloadMappingProperties;
|
||||
private List<MappingProperty> payloadMappingProperties = new ArrayList<>();
|
||||
@ApiModelProperty(value = "Meta mapping for wso2 mapping")
|
||||
private List<MappingProperty> metaMappingProperties;
|
||||
private List<MappingProperty> metaMappingProperties = new ArrayList<>();
|
||||
|
||||
public MessageFormat getMessageFormat() {
|
||||
return messageFormat;
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Entgra (pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||
*
|
||||
* Entgra (pvt) Ltd. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.wso2.carbon.device.mgt.jaxrs.beans.analytics;
|
||||
|
||||
/**
|
||||
* Available adapter types
|
||||
*/
|
||||
public enum AdapterType {
|
||||
EMAIL, FILE_TAIL, HTTP, IOT_EVENT, JMS, KAFKA, MQTT, OAUTH_MQTT, SOAP, WEBSOCKET, WEBSOCKET_LOCAL,
|
||||
WSO2_EVENT, XMPP, UI, RDBMS, SECURED_WEBSOCKET, CASSANDRA, LOGGER;
|
||||
|
||||
public String toStringFormatted() {
|
||||
return super.toString().toLowerCase().replace("_", "-");
|
||||
}
|
||||
}
|
||||
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Entgra (pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||
*
|
||||
* Entgra (pvt) Ltd. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.jaxrs.beans.analytics;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
public class EventPublisher {
|
||||
@ApiModelProperty(value = "Publisher definition")
|
||||
private String definition;
|
||||
|
||||
public String getDefinition() {
|
||||
return definition;
|
||||
}
|
||||
|
||||
public void setDefinition(String definition) {
|
||||
this.definition = definition;
|
||||
}
|
||||
}
|
||||
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Entgra (pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||
*
|
||||
* Entgra (pvt) Ltd. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.jaxrs.beans.analytics;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
public class EventReceiver {
|
||||
@ApiModelProperty(value = "Stream definition")
|
||||
private String definition;
|
||||
|
||||
public String getDefinition() {
|
||||
return definition;
|
||||
}
|
||||
|
||||
public void setDefinition(String definition) {
|
||||
this.definition = definition;
|
||||
}
|
||||
}
|
||||
@ -17,10 +17,9 @@
|
||||
*/
|
||||
package org.wso2.carbon.device.mgt.jaxrs.beans.analytics;
|
||||
|
||||
import com.sun.istack.NotNull;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.hibernate.validator.constraints.NotEmpty;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -37,12 +36,13 @@ public class EventStream {
|
||||
@ApiModelProperty(value = "Stream description")
|
||||
private String description;
|
||||
@ApiModelProperty(value = "Meta attribute list")
|
||||
private List<Attribute> metaData;
|
||||
private List<Attribute> metaData = new ArrayList<>();
|
||||
@ApiModelProperty(value = "Correlation attribute list")
|
||||
private List<Attribute> correlationData;
|
||||
private List<Attribute> correlationData = new ArrayList<>();
|
||||
@ApiModelProperty(value = "Payload attribute list")
|
||||
private List<Attribute> payloadData;
|
||||
@ApiModelProperty(value = "Stream definition") @NotNull @NotEmpty
|
||||
private List<Attribute> payloadData = new ArrayList<>();
|
||||
|
||||
@ApiModelProperty(value = "Stream definition" , notes = "use only when creating stream as a String")
|
||||
private String definition;
|
||||
|
||||
public String getName() {
|
||||
|
||||
@ -21,6 +21,11 @@ package org.wso2.carbon.device.mgt.jaxrs.beans.analytics;
|
||||
* This hold the default transport types support by the server.
|
||||
*/
|
||||
public enum TransportType {
|
||||
HTTP, MQTT;
|
||||
EMAIL, FILE_TAIL, HTTP, IOT_EVENT, JMS, KAFKA, MQTT, OAUTH_MQTT, SOAP, WEBSOCKET, WEBSOCKET_LOCAL,
|
||||
WSO2_EVENT, XMPP, UI, RDBMS, SECURED_WEBSOCKET, CASSANDRA, LOGGER;
|
||||
|
||||
public String toStringFormatted() {
|
||||
return super.toString().toLowerCase().replace("_", "-");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -28,11 +28,11 @@ public class InvalidExecutionPlanException extends WebApplicationException {
|
||||
private static final long serialVersionUID = 7583096344745990515L;
|
||||
|
||||
public InvalidExecutionPlanException(ErrorResponse error) {
|
||||
super(Response.status(Response.Status.NOT_FOUND).entity(error).build());
|
||||
super(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(error).build());
|
||||
}
|
||||
|
||||
public InvalidExecutionPlanException(ErrorDTO errorDTO) {
|
||||
super(Response.status(Response.Status.NOT_FOUND)
|
||||
super(Response.status(Response.Status.INTERNAL_SERVER_ERROR)
|
||||
.entity(errorDTO)
|
||||
.header(Constants.DeviceConstants.HEADER_CONTENT_TYPE, Constants.DeviceConstants.APPLICATION_JSON)
|
||||
.build());
|
||||
|
||||
@ -17,14 +17,13 @@
|
||||
*/
|
||||
package org.wso2.carbon.device.mgt.jaxrs.service.api;
|
||||
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.wso2.carbon.apimgt.annotations.api.Scope;
|
||||
import org.wso2.carbon.apimgt.annotations.api.Scopes;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.Adapter;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.EventStream;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.SiddhiExecutionPlan;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.EventPublisher;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.EventReceiver;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
@ -91,17 +90,17 @@ import javax.ws.rs.core.Response;
|
||||
}
|
||||
)
|
||||
|
||||
@Path("/analytics/artifacts")
|
||||
@Api(value = "Analytics Artifacts Management", description = "This API corresponds to services" +
|
||||
" related to Analytics Artifacts management")
|
||||
@Path("/analytics/artifacts")
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
public interface AnalyticsArtifactsManagementService {
|
||||
|
||||
@POST
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/stream/{id}")
|
||||
@ApiOperation(
|
||||
httpMethod = "POST",
|
||||
value = "Create Event Stream Artifact as String",
|
||||
value = "Create Event Stream Artifact through a String argument.",
|
||||
notes = "Deploy a Json Stream Artifact in Analytics server.",
|
||||
tags = "Analytics Artifacts Management",
|
||||
extensions = {
|
||||
@ -143,16 +142,20 @@ public interface AnalyticsArtifactsManagementService {
|
||||
response = ErrorResponse.class)
|
||||
}
|
||||
)
|
||||
Response deployEventDefinitionAsString(@PathParam("id") String id,
|
||||
@QueryParam("isEdited") boolean isEdited,
|
||||
@Valid EventStream stream);
|
||||
Response deployEventDefinitionAsString(
|
||||
@ApiParam(name = "id", value = "Stream id(name:version).")
|
||||
@PathParam("id") String id,
|
||||
@ApiParam(name = "isEdited", value = "This stream is being edited or created.")
|
||||
@QueryParam("isEdited") boolean isEdited,
|
||||
@ApiParam(name = "stream", value = "Add the data to complete the EventStream object.",
|
||||
required = true)
|
||||
@Valid EventStream stream);
|
||||
|
||||
@POST
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/stream")
|
||||
@ApiOperation(
|
||||
httpMethod = "POST",
|
||||
value = "Create Event Stream Artifact as DTO",
|
||||
value = "Create Event Stream Artifact through a DTO class.",
|
||||
notes = "Deploy a Json Stream Artifact in Analytics server.",
|
||||
tags = "Analytics Artifacts Management",
|
||||
extensions = {
|
||||
@ -194,14 +197,16 @@ public interface AnalyticsArtifactsManagementService {
|
||||
response = ErrorResponse.class)
|
||||
}
|
||||
)
|
||||
Response deployEventDefinitionAsDto(@Valid EventStream stream);
|
||||
Response deployEventDefinitionAsDto(
|
||||
@ApiParam(name = "stream", value = "Add the data to complete the EventStream object.",
|
||||
required = true)
|
||||
@Valid EventStream stream);
|
||||
|
||||
@POST
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/receiver/{name}")
|
||||
@ApiOperation(
|
||||
httpMethod = "POST",
|
||||
value = "Create Event Receiver Artifact as String",
|
||||
value = "Create Event Receiver Artifact through a String argument.",
|
||||
notes = "Deploy a XML Event Receiver Artifact in Analytics server.",
|
||||
tags = "Analytics Artifacts Management",
|
||||
extensions = {
|
||||
@ -244,16 +249,20 @@ public interface AnalyticsArtifactsManagementService {
|
||||
response = ErrorResponse.class)
|
||||
}
|
||||
)
|
||||
Response deployEventReceiverAsString(@PathParam("name") String name,
|
||||
@QueryParam("isEdited") boolean isEdited,
|
||||
@Valid EventReceiver receiver);
|
||||
Response deployEventReceiverAsString(
|
||||
@ApiParam(name = "name", value = "Receiver name.")
|
||||
@PathParam("name") String name,
|
||||
@ApiParam(name = "isEdited", value = "This stream is being edited or created.")
|
||||
@QueryParam("isEdited") boolean isEdited,
|
||||
@ApiParam(name = "receiver", value = "Add the data to complete the EventReceiver object.",
|
||||
required = true)
|
||||
@Valid Adapter receiver);
|
||||
|
||||
@POST
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/receiver")
|
||||
@ApiOperation(
|
||||
httpMethod = "POST",
|
||||
value = "Create Event Receiver Artifact as DTO",
|
||||
value = "Create Event Receiver Artifact through a DTO class.",
|
||||
notes = "Deploy a JSON Event Receiver Artifact in Analytics server.",
|
||||
tags = "Analytics Artifacts Management",
|
||||
extensions = {
|
||||
@ -296,14 +305,16 @@ public interface AnalyticsArtifactsManagementService {
|
||||
response = ErrorResponse.class)
|
||||
}
|
||||
)
|
||||
Response deployEventReceiverAsDto(@Valid Adapter receiver);
|
||||
Response deployEventReceiverAsDto(
|
||||
@ApiParam(name = "receiver", value = "Add the data to complete the Adapter object.",
|
||||
required = true)
|
||||
@Valid Adapter receiver);
|
||||
|
||||
@POST
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/publisher/{name}")
|
||||
@ApiOperation(
|
||||
httpMethod = "POST",
|
||||
value = "Create Event Publisher Artifact as String",
|
||||
value = "Create Event Publisher Artifact through a String argument.",
|
||||
notes = "Deploy a XML Event Publisher Artifact in Analytics server.",
|
||||
tags = "Analytics Artifacts Management",
|
||||
extensions = {
|
||||
@ -346,16 +357,20 @@ public interface AnalyticsArtifactsManagementService {
|
||||
response = ErrorResponse.class)
|
||||
}
|
||||
)
|
||||
Response deployEventPublisherAsString(@PathParam("name") String name,
|
||||
@QueryParam("isEdited") boolean isEdited,
|
||||
@Valid EventPublisher publisher);
|
||||
Response deployEventPublisherAsString(
|
||||
@ApiParam(name = "name", value = "Publisher name.")
|
||||
@PathParam("name") String name,
|
||||
@ApiParam(name = "isEdited", value = "This stream is being edited or created.")
|
||||
@QueryParam("isEdited") boolean isEdited,
|
||||
@ApiParam(name = "publisher", value = "Add the data to complete the EventPublisher object.",
|
||||
required = true)
|
||||
@Valid Adapter publisher);
|
||||
|
||||
@POST
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/publisher")
|
||||
@ApiOperation(
|
||||
httpMethod = "POST",
|
||||
value = "Create Event Publisher Artifact as DTO",
|
||||
value = "Create Event Publisher Artifact through a DTO class.",
|
||||
notes = "Deploy a JSON Event Publisher Artifact in Analytics server.",
|
||||
tags = "Analytics Artifacts Management",
|
||||
extensions = {
|
||||
@ -398,15 +413,17 @@ public interface AnalyticsArtifactsManagementService {
|
||||
response = ErrorResponse.class)
|
||||
}
|
||||
)
|
||||
Response deployEventPublisherAsDto(@Valid Adapter publisher);
|
||||
Response deployEventPublisherAsDto(
|
||||
@ApiParam(name = "publisher", value = "Add the data to complete the Adapter object.",
|
||||
required = true)
|
||||
@Valid Adapter publisher);
|
||||
|
||||
@POST
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/siddhi-script/{name}")
|
||||
@ApiOperation(
|
||||
httpMethod = "POST",
|
||||
value = "Create Siddhi Script Artifact as String",
|
||||
notes = "Deploy a SiddhiQL Siddhi script Artifact in Analytics server.",
|
||||
value = "Create Siddhi Script Artifact through a String argument.",
|
||||
notes = "Deploy a SiddhiQL script Artifact in Analytics server.",
|
||||
tags = "Analytics Artifacts Management",
|
||||
extensions = {
|
||||
@Extension(properties = {
|
||||
@ -449,6 +466,11 @@ public interface AnalyticsArtifactsManagementService {
|
||||
}
|
||||
)
|
||||
Response deploySiddhiExecutableScript(
|
||||
@PathParam("name") String name, @QueryParam("isEdited") boolean isEdited,
|
||||
@ApiParam(name = "name", value = "Siddhi Executable Script name.")
|
||||
@PathParam("name") String name,
|
||||
@ApiParam(name = "isEdited", value = "This stream is being edited or created.")
|
||||
@QueryParam("isEdited") boolean isEdited,
|
||||
@ApiParam(name = "plan", value = "Add the data to complete the SiddhiExecutionPlan object.",
|
||||
required = true)
|
||||
@Valid SiddhiExecutionPlan plan);
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
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;
|
||||
@ -25,8 +26,7 @@ import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.AdapterConfiguration;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.AdapterProperty;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.MessageFormat;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.SiddhiExecutionPlan;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.EventPublisher;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.EventReceiver;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.exception.BadRequestException;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.exception.ErrorDTO;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.exception.InvalidExecutionPlanException;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.service.api.AnalyticsArtifactsManagementService;
|
||||
@ -58,7 +58,6 @@ import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.rmi.RemoteException;
|
||||
import java.util.List;
|
||||
|
||||
@ -67,14 +66,10 @@ import java.util.List;
|
||||
* siddhi scripts to the Analytics server as Artifacts
|
||||
*/
|
||||
@Path("/analytics/artifacts")
|
||||
public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifactsManagementService {
|
||||
public class AnalyticsArtifactsManagementServiceImpl
|
||||
implements AnalyticsArtifactsManagementService {
|
||||
private static final Log log = LogFactory.getLog(AnalyticsArtifactsManagementServiceImpl.class);
|
||||
|
||||
/**
|
||||
* @param stream EventStream object with the properties of the stream
|
||||
* @return A status code depending on the code result
|
||||
* Function - Used to deploy stream as an artifact using a String
|
||||
*/
|
||||
@Override
|
||||
@POST
|
||||
@Path("/stream/{id}")
|
||||
@ -84,90 +79,70 @@ public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifac
|
||||
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||
EventStreamAdminServiceStub eventStreamAdminServiceStub = null;
|
||||
try {
|
||||
String streamDefinition = new String(stream.getDefinition().getBytes(), StandardCharsets.UTF_8);
|
||||
String streamDefinition = stream.getDefinition();
|
||||
eventStreamAdminServiceStub = DeviceMgtAPIUtils.getEventStreamAdminServiceStub();
|
||||
if (!isEdited) {
|
||||
eventStreamAdminServiceStub.addEventStreamDefinitionAsString(streamDefinition);
|
||||
} else {
|
||||
// Find and edit stream
|
||||
if (eventStreamAdminServiceStub.getStreamDetailsForStreamId(id) != null) {
|
||||
eventStreamAdminServiceStub.editEventStreamDefinitionAsString(streamDefinition, id);
|
||||
}
|
||||
}
|
||||
return Response.ok().build();
|
||||
} catch (AxisFault e) {
|
||||
log.error("Failed to create event definitions for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to create event definitions for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (RemoteException e) {
|
||||
log.error("Failed to connect with the remote services for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the remote services for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (JWTClientException e) {
|
||||
log.error("Failed to generate jwt token for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to generate jwt token for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (UserStoreException e) {
|
||||
log.error("Failed to connect with the user store for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the user store for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} finally {
|
||||
cleanup(eventStreamAdminServiceStub);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param stream EventStream object with the properties of the stream
|
||||
* @return A status code depending on the code result
|
||||
* Function - Used to deploy stream as an artifact using a DTO
|
||||
*/
|
||||
@Override
|
||||
@POST
|
||||
@Path("/stream")
|
||||
public Response deployEventDefinitionAsDto(@Valid EventStream stream) {
|
||||
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||
// Categorize attributes to three lists depending on their type
|
||||
List<Attribute> metaData = stream.getMetaData();
|
||||
List<Attribute> payloadData = stream.getPayloadData();
|
||||
List<Attribute> correlationData = stream.getCorrelationData();
|
||||
|
||||
try {
|
||||
/* Conditions
|
||||
* - At least one list should always be not null
|
||||
*/
|
||||
if (metaData == null && correlationData == null && payloadData == null) {
|
||||
log.error("Invalid payload: event attributes");
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
|
||||
} else {
|
||||
// Publish the event stream
|
||||
publishStream(stream, metaData, correlationData, payloadData);
|
||||
return Response.ok().build();
|
||||
}
|
||||
deployStream(stream);
|
||||
return Response.ok().build();
|
||||
} catch (AxisFault e) {
|
||||
log.error("Failed to create event definitions for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to create event definitions for tenant " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (RemoteException e) {
|
||||
log.error("Failed to connect with the remote services for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the remote services for tenant " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (JWTClientException e) {
|
||||
log.error("Failed to generate jwt token for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to generate jwt token for tenant " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (UserStoreException e) {
|
||||
log.error("Failed to connect with the user store for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the user store for tenant " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name Receiver name
|
||||
* @param isEdited If receiver is created or edited
|
||||
* @param receiver Receiver object with the properties of the receiver
|
||||
* @return A status code depending on the code result
|
||||
* Function - Used to deploy receiver as an artifact using a String
|
||||
*/
|
||||
@Override
|
||||
@POST
|
||||
@Path("/receiver/{name}")
|
||||
public Response deployEventReceiverAsString(@PathParam("name") String name,
|
||||
@QueryParam("isEdited") boolean isEdited,
|
||||
@Valid EventReceiver receiver) {
|
||||
@Valid Adapter receiver) {
|
||||
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||
EventReceiverAdminServiceStub eventReceiverAdminServiceStub;
|
||||
try {
|
||||
@ -178,202 +153,128 @@ public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifac
|
||||
} else {
|
||||
eventReceiverAdminServiceStub.editActiveEventReceiverConfiguration(receiverDefinition, name);
|
||||
}
|
||||
return Response.ok().build();
|
||||
} catch (AxisFault e) {
|
||||
log.error("Failed to create event definitions for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to create event definitions for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (RemoteException e) {
|
||||
log.error("Failed to connect with the remote services for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the remote services for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (JWTClientException e) {
|
||||
log.error("Failed to generate jwt token for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to generate jwt token for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (UserStoreException e) {
|
||||
log.error("Failed to connect with the user store for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the user store for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
}
|
||||
return Response.ok().entity(name).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param receiver Receiver object with the properties of the receiver
|
||||
* @return A status code depending on the code result
|
||||
* Function - Used to deploy receiver as an artifact using a DTO
|
||||
*/
|
||||
@Override
|
||||
@POST
|
||||
@Path("/receiver")
|
||||
public Response deployEventReceiverAsDto(@Valid Adapter receiver) {
|
||||
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||
String receiverName = receiver.getAdapterName();
|
||||
String adapterType = receiver.getAdapterType().toStringFormatted();
|
||||
AdapterConfiguration adapterConfiguration = receiver.getAdapterConfiguration();
|
||||
AdapterMappingConfiguration adapterMappingConfiguration = adapterConfiguration.getAdapterMappingConfiguration();
|
||||
|
||||
try {
|
||||
List<AdapterProperty> adapterProperties = adapterConfiguration.getAdapterProperties();
|
||||
if (adapterProperties == null) {
|
||||
log.error("Invalid attribute payload");
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
}
|
||||
|
||||
AdapterConfiguration adapterConfiguration = receiver.getAdapterConfiguration();
|
||||
boolean customMapping = adapterConfiguration.isCustomMappingEnabled();
|
||||
List<MappingProperty> inputMappingProperties = adapterMappingConfiguration.getInputMappingProperties();
|
||||
List<MappingProperty> namespaceMappingProperties = adapterMappingConfiguration.getNamespaceMappingProperties();
|
||||
List<MappingProperty> correlationMappingProperties = adapterMappingConfiguration.getCorrelationMappingProperties();
|
||||
List<MappingProperty> payloadMappingProperties = adapterMappingConfiguration.getPayloadMappingProperties();
|
||||
List<MappingProperty> metaMappingProperties = adapterMappingConfiguration.getMetaMappingProperties();
|
||||
MessageFormat messageFormat = adapterMappingConfiguration.getMessageFormat();
|
||||
/*
|
||||
* Conditions
|
||||
* - if CustomMappingEnabled check validity of property lists
|
||||
* - if both inputMappingProperties and namespaceMappingProperties null check remaining property lists
|
||||
* - if all correlationMappingProperties, payloadMappingProperties, metaMappingProperties null log error
|
||||
* - if message format is null change the final result to TRUE
|
||||
* - else continue
|
||||
* */
|
||||
if ((customMapping &&
|
||||
(inputMappingProperties == null && namespaceMappingProperties == null) &&
|
||||
(correlationMappingProperties == null && payloadMappingProperties == null &&
|
||||
metaMappingProperties == null)) || messageFormat == null) {
|
||||
String errMsg = "Invalid mapping payload";
|
||||
log.error(errMsg);
|
||||
return Response.status(Response.Status.BAD_REQUEST).entity(errMsg).build();
|
||||
validateAdapterProperties(adapterConfiguration.getAdapterProperties());
|
||||
if (customMapping) {
|
||||
validateAdapterMapping(adapterConfiguration.getAdapterMappingConfiguration());
|
||||
}
|
||||
String eventStreamWithVersion = receiver.getEventStreamWithVersion();
|
||||
|
||||
publishReceiver(receiverName, adapterType, adapterProperties, customMapping, inputMappingProperties,
|
||||
namespaceMappingProperties, correlationMappingProperties, payloadMappingProperties,
|
||||
metaMappingProperties, messageFormat, eventStreamWithVersion);
|
||||
deployReceiver(receiver, customMapping, adapterConfiguration);
|
||||
return Response.ok().build();
|
||||
} catch (AxisFault e) {
|
||||
log.error("Failed to create event definitions for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to create event definitions for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (RemoteException e) {
|
||||
log.error("Failed to connect with the remote services for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the remote services for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (JWTClientException e) {
|
||||
log.error("Failed to generate jwt token for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to generate jwt token for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (UserStoreException e) {
|
||||
log.error("Failed to connect with the user store for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the user store for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name Publisher name
|
||||
* @param isEdited If receiver is created or edited
|
||||
* @param publisher Publisher object with the properties of the publisher
|
||||
* @return A status code depending on the code result
|
||||
* Function - Used to deploy publisher as an artifact using a String
|
||||
*/
|
||||
@Override
|
||||
@POST
|
||||
@Path("/publisher/{name}")
|
||||
public Response deployEventPublisherAsString(@PathParam("name") String name,
|
||||
@QueryParam("isEdited") boolean isEdited,
|
||||
@Valid EventPublisher publisher) {
|
||||
@Valid Adapter publisher) {
|
||||
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||
EventPublisherAdminServiceStub eventPublisherAdminServiceStub;
|
||||
|
||||
try {
|
||||
String publisherDefinition = publisher.getDefinition();
|
||||
|
||||
eventPublisherAdminServiceStub = DeviceMgtAPIUtils.getEventPublisherAdminServiceStub();
|
||||
if (!isEdited) {
|
||||
eventPublisherAdminServiceStub.deployEventPublisherConfiguration(publisherDefinition);
|
||||
} else {
|
||||
eventPublisherAdminServiceStub.editActiveEventPublisherConfiguration(publisherDefinition, name);
|
||||
}
|
||||
return Response.ok().build();
|
||||
} catch (AxisFault e) {
|
||||
log.error("Failed to create event definitions for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to create event definitions for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (RemoteException e) {
|
||||
log.error("Failed to connect with the remote services for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the remote services for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (JWTClientException e) {
|
||||
log.error("Failed to generate jwt token for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to generate jwt token for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (UserStoreException e) {
|
||||
log.error("Failed to connect with the user store for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the user store for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
}
|
||||
return Response.ok().entity(publisher).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param publisher Publisher object with the properties of the publisher
|
||||
* @return A status code depending on the code result
|
||||
* Function - Used to deploy publisher as an artifact using a DTO
|
||||
*/
|
||||
@Override
|
||||
@POST
|
||||
@Path("/publisher")
|
||||
public Response deployEventPublisherAsDto(@Valid Adapter publisher) {
|
||||
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||
String publisherName = publisher.getAdapterName();
|
||||
String adapterType = publisher.getAdapterType().toStringFormatted();
|
||||
AdapterConfiguration adapterConfiguration = publisher.getAdapterConfiguration();
|
||||
AdapterMappingConfiguration adapterMappingConfiguration = adapterConfiguration.getAdapterMappingConfiguration();
|
||||
|
||||
try {
|
||||
List<AdapterProperty> adapterProperties = adapterConfiguration.getAdapterProperties();
|
||||
if (adapterProperties == null) {
|
||||
log.error("Invalid attribute payload");
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
}
|
||||
|
||||
validateAdapterProperties(adapterConfiguration.getAdapterProperties());
|
||||
boolean customMapping = adapterConfiguration.isCustomMappingEnabled();
|
||||
String inputMappingString = adapterMappingConfiguration.getInputMappingString();
|
||||
List<MappingProperty> inputMappingProperties = adapterMappingConfiguration.getInputMappingProperties();
|
||||
List<MappingProperty> correlationMappingProperties = adapterMappingConfiguration.getCorrelationMappingProperties();
|
||||
List<MappingProperty> payloadMappingProperties = adapterMappingConfiguration.getPayloadMappingProperties();
|
||||
List<MappingProperty> metaMappingProperties = adapterMappingConfiguration.getMetaMappingProperties();
|
||||
MessageFormat messageFormat = adapterMappingConfiguration.getMessageFormat();
|
||||
/*
|
||||
* Conditions
|
||||
* - if CustomMappingEnabled check validity of property lists
|
||||
* - if all correlationMappingProperties, payloadMappingProperties, metaMappingProperties null log error
|
||||
* - if message format is null change the final result to TRUE
|
||||
* - else continue
|
||||
*/
|
||||
if ((customMapping &&
|
||||
(inputMappingProperties == null && inputMappingString == null) &&
|
||||
(correlationMappingProperties == null && payloadMappingProperties == null &&
|
||||
metaMappingProperties == null)) || messageFormat == null) {
|
||||
String errMsg = "Invalid mapping payload";
|
||||
log.error(errMsg);
|
||||
return Response.status(Response.Status.BAD_REQUEST).entity(errMsg).build();
|
||||
if (customMapping) {
|
||||
validateAdapterMapping(adapterConfiguration.getAdapterMappingConfiguration());
|
||||
}
|
||||
String eventStreamWithVersion = publisher.getEventStreamWithVersion();
|
||||
|
||||
publishPublisher(publisherName, adapterType, adapterProperties, customMapping
|
||||
, inputMappingString, inputMappingProperties, correlationMappingProperties
|
||||
, payloadMappingProperties, metaMappingProperties, messageFormat
|
||||
, eventStreamWithVersion);
|
||||
deployPublisher(publisher, customMapping, adapterConfiguration);
|
||||
return Response.ok().build();
|
||||
} catch (AxisFault e) {
|
||||
log.error("Failed to create event definitions for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to create event definitions for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (RemoteException e) {
|
||||
log.error("Failed to connect with the remote services for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the remote services for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (JWTClientException e) {
|
||||
log.error("Failed to generate jwt token for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to generate jwt token for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (UserStoreException e) {
|
||||
log.error("Failed to connect with the user store for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the user store for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name Siddhi plan name
|
||||
* @param isEdited If receiver is created or edited
|
||||
* @param plan Siddhi plan definition
|
||||
* @return a status code depending on the code execution
|
||||
* Function - Used to deploy Siddhi script as an artifact using a String
|
||||
*/
|
||||
@Override
|
||||
@POST
|
||||
@Path("/siddhi-script/{name}")
|
||||
@ -385,38 +286,46 @@ public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifac
|
||||
publishSiddhiExecutionPlan(name, isEdited, plan.getDefinition());
|
||||
return Response.ok().build();
|
||||
} catch (AxisFault e) {
|
||||
log.error("Failed to create event definitions for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to create event definitions for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (RemoteException e) {
|
||||
log.error("Failed to connect with the remote services for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
} catch (InvalidExecutionPlanException e) {
|
||||
log.error("Invalid Execution plan: " + tenantDomain, e);
|
||||
return e.getResponse();
|
||||
String errMsg = "Failed to connect with the remote services for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (JWTClientException e) {
|
||||
log.error("Failed to generate jwt token for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to generate jwt token for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
} catch (UserStoreException e) {
|
||||
log.error("Failed to connect with the user store for tenantDomain: " + tenantDomain, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
String errMsg = "Failed to connect with the user store for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errMsg).build();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param stream Stream definition
|
||||
* @param metaData Meta attributes of the stream
|
||||
* @param correlationData Correlation attributes of the stream
|
||||
* @param payloadData Payload attributes of the stream
|
||||
* @throws RemoteException exception that may occur during a remote method call
|
||||
* @throws UserStoreException exception that may occur during JWT token generation
|
||||
* @throws JWTClientException exception that may occur during connecting to client store
|
||||
* Set data to a Stream dto and deploy dto through a stub
|
||||
*
|
||||
* @param stream Stream definition
|
||||
*/
|
||||
private void publishStream(EventStream stream, List<Attribute> metaData,
|
||||
List<Attribute> correlationData, List<Attribute> payloadData)
|
||||
private void deployStream(EventStream stream)
|
||||
throws RemoteException, UserStoreException, JWTClientException {
|
||||
EventStreamAdminServiceStub eventStreamAdminServiceStub =
|
||||
DeviceMgtAPIUtils.getEventStreamAdminServiceStub();
|
||||
EventStreamAdminServiceStub eventStreamAdminServiceStub = null;
|
||||
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();
|
||||
|
||||
EventStreamDefinitionDto eventStreamDefinitionDto = new EventStreamDefinitionDto();
|
||||
eventStreamDefinitionDto.setName(stream.getName());
|
||||
eventStreamDefinitionDto.setVersion(stream.getVersion());
|
||||
@ -425,6 +334,7 @@ public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifac
|
||||
eventStreamDefinitionDto.setMetaData(addEventAttributesToDto(metaData));
|
||||
eventStreamDefinitionDto.setPayloadData(addEventAttributesToDto(payloadData));
|
||||
eventStreamDefinitionDto.setCorrelationData(addEventAttributesToDto(correlationData));
|
||||
|
||||
String streamId = stream.getName() + ":" + stream.getVersion();
|
||||
if (eventStreamAdminServiceStub.getStreamDefinitionDto(streamId) != null) {
|
||||
eventStreamAdminServiceStub.editEventStreamDefinitionAsDto(eventStreamDefinitionDto, streamId);
|
||||
@ -438,86 +348,75 @@ public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifac
|
||||
}
|
||||
|
||||
/**
|
||||
* @param receiverName Receiver name
|
||||
* @param adapterType Receiver type
|
||||
* @param adapterProperties Receiver properties
|
||||
* @param customMapping Is receiver mapped
|
||||
* @param inputMappingProperties Receiver input attribute mapping
|
||||
* @param namespaceMappingProperties Receiver name-scape attribute mapping
|
||||
* @param correlationMappingProperties Receiver correlation attribute mapping
|
||||
* @param payloadMappingProperties Receiver payload attribute mapping
|
||||
* @param metaMappingProperties Receiver meta attribute mapping
|
||||
* @param messageFormat Receiver mapping format
|
||||
* @param eventStreamWithVersion Attached stream
|
||||
* @throws RemoteException exception that may occur during a remote method call
|
||||
* @throws UserStoreException exception that may occur during JWT token generation
|
||||
* @throws JWTClientException exception that may occur during connecting to client store
|
||||
* Set data to a receiver dto and deploy dto through a stub
|
||||
*
|
||||
* @param receiver Event Receiver adapter
|
||||
* @param customMapping Is Receiver mapped
|
||||
* @param adapterConfiguration Adapter property and mapping configuration
|
||||
* @throws RemoteException Exception that may occur during a remote method call
|
||||
* @throws UserStoreException Exception that may occur during JWT token generation
|
||||
* @throws JWTClientException Exception that may occur during connecting to client store
|
||||
*/
|
||||
private void publishReceiver(String receiverName, String adapterType,
|
||||
List<AdapterProperty> adapterProperties, boolean customMapping,
|
||||
List<MappingProperty> inputMappingProperties,
|
||||
List<MappingProperty> namespaceMappingProperties,
|
||||
List<MappingProperty> correlationMappingProperties,
|
||||
List<MappingProperty> payloadMappingProperties,
|
||||
List<MappingProperty> metaMappingProperties,
|
||||
MessageFormat messageFormat,
|
||||
String eventStreamWithVersion)
|
||||
private void deployReceiver(Adapter receiver, boolean customMapping,
|
||||
AdapterConfiguration adapterConfiguration)
|
||||
throws RemoteException, UserStoreException, JWTClientException {
|
||||
EventReceiverAdminServiceStub eventReceiverAdminServiceStub = DeviceMgtAPIUtils.getEventReceiverAdminServiceStub();
|
||||
|
||||
try {
|
||||
String receiverName = receiver.getAdapterName();
|
||||
String adapterType = receiver.getAdapterType().toStringFormatted();
|
||||
String eventStreamWithVersion = receiver.getEventStreamWithVersion();
|
||||
List<AdapterProperty> adapterProperties = adapterConfiguration.getAdapterProperties();
|
||||
EventReceiverConfigurationDto eventReceiverConfigurationDto = eventReceiverAdminServiceStub
|
||||
.getActiveEventReceiverConfiguration(receiverName);
|
||||
|
||||
// Check if adapter already exists, if so un-deploy it
|
||||
if (eventReceiverConfigurationDto != null) {
|
||||
eventReceiverAdminServiceStub.undeployActiveEventReceiverConfiguration(receiverName);
|
||||
}
|
||||
BasicInputAdapterPropertyDto[] basicInputAdapterPropertyDtos = addReceiverConfigToDto(adapterProperties);
|
||||
|
||||
// Adding attribute properties to DTOs
|
||||
BasicInputAdapterPropertyDto[] basicInputAdapterPropertyDtos =
|
||||
addReceiverConfigToDto(adapterProperties);
|
||||
|
||||
if (eventReceiverAdminServiceStub.getActiveEventReceiverConfiguration(receiverName) == null) {
|
||||
// Call stub deploy methods according to the message format
|
||||
if (!messageFormat.toString().equals("wso2event")) {
|
||||
EventMappingPropertyDto[] inputMappingPropertyDtos =
|
||||
addReceiverMappingToDto(inputMappingProperties);
|
||||
if (messageFormat.toString().equals("xml")) {
|
||||
EventMappingPropertyDto[] namespaceMappingPropertyDtos =
|
||||
addReceiverMappingToDto(namespaceMappingProperties);
|
||||
|
||||
eventReceiverAdminServiceStub.deployXmlEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, null
|
||||
, namespaceMappingPropertyDtos, inputMappingPropertyDtos
|
||||
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);
|
||||
} 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);
|
||||
} else {
|
||||
eventReceiverAdminServiceStub.deployJsonEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, customMapping);
|
||||
}
|
||||
eventReceiverAdminServiceStub.deployJsonEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, customMapping);
|
||||
}
|
||||
} else {
|
||||
EventMappingPropertyDto[] correlationMappingPropertyDtos = addReceiverMappingToDto(correlationMappingProperties);
|
||||
EventMappingPropertyDto[] metaMappingPropertyDtos = addReceiverMappingToDto(metaMappingProperties);
|
||||
EventMappingPropertyDto[] payloadMappingPropertyDtos = addReceiverMappingToDto(payloadMappingProperties);
|
||||
|
||||
eventReceiverAdminServiceStub.deployWso2EventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, metaMappingPropertyDtos
|
||||
, correlationMappingPropertyDtos, payloadMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, customMapping
|
||||
, 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);
|
||||
}
|
||||
} finally {
|
||||
cleanup(eventReceiverAdminServiceStub);
|
||||
@ -525,120 +424,115 @@ public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifac
|
||||
}
|
||||
|
||||
/**
|
||||
* @param publisherName Publisher name
|
||||
* @param adapterType Publisher type
|
||||
* @param adapterProperties Publisher properties
|
||||
* @param customMapping Is publisher mapped
|
||||
* @param correlationMappingProperties Publisher correlation attribute mapping
|
||||
* @param payloadMappingProperties Publisher payload attribute mapping
|
||||
* @param metaMappingProperties Publisher meta attribute mapping
|
||||
* @param messageFormat Publisher mapping format
|
||||
* @param eventStreamWithVersion Attached stream
|
||||
* @throws RemoteException exception that may occur during a remote method call
|
||||
* @throws UserStoreException exception that may occur during JWT token generation
|
||||
* @throws JWTClientException exception that may occur during connecting to client store
|
||||
* Set data to a publisher dto and deploy dto through a stub
|
||||
*
|
||||
* @param publisher Event Publisher adapter
|
||||
* @param customMapping Is Publisher mapped
|
||||
* @param adapterConfiguration Publisher property and mapping configuration
|
||||
* @throws RemoteException Exception that may occur during a remote method call
|
||||
* @throws UserStoreException Exception that may occur during JWT token generation
|
||||
* @throws JWTClientException Exception that may occur during connecting to client store
|
||||
*/
|
||||
private void publishPublisher(String publisherName, String adapterType,
|
||||
List<AdapterProperty> adapterProperties,
|
||||
boolean customMapping,
|
||||
String inputMappingString,
|
||||
List<MappingProperty> inputMappingProperties,
|
||||
List<MappingProperty> correlationMappingProperties,
|
||||
List<MappingProperty> payloadMappingProperties,
|
||||
List<MappingProperty> metaMappingProperties,
|
||||
MessageFormat messageFormat,
|
||||
String eventStreamWithVersion)
|
||||
private void deployPublisher(Adapter publisher, boolean customMapping,
|
||||
AdapterConfiguration adapterConfiguration)
|
||||
throws RemoteException, UserStoreException, JWTClientException {
|
||||
EventPublisherAdminServiceStub eventPublisherAdminServiceStub = DeviceMgtAPIUtils.getEventPublisherAdminServiceStub();
|
||||
// Check if adapter already exists, if so un-deploy it
|
||||
try {
|
||||
String publisherName = publisher.getAdapterName();
|
||||
String adapterType = publisher.getAdapterType().toStringFormatted();
|
||||
String eventStreamWithVersion = publisher.getEventStreamWithVersion();
|
||||
List<AdapterProperty> adapterProperties = adapterConfiguration.getAdapterProperties();
|
||||
EventPublisherConfigurationDto eventPublisherConfigurationDto = eventPublisherAdminServiceStub
|
||||
.getActiveEventPublisherConfiguration(publisherName);
|
||||
if (eventPublisherConfigurationDto != null) {
|
||||
eventPublisherAdminServiceStub.undeployActiveEventPublisherConfiguration(publisherName);
|
||||
}
|
||||
|
||||
// Adding attribute properties to DTOs
|
||||
BasicOutputAdapterPropertyDto[] basicOutputAdapterPropertyDtos =
|
||||
addPublisherConfigToDto(adapterProperties);
|
||||
|
||||
if (eventPublisherAdminServiceStub.getActiveEventPublisherConfiguration(publisherName) == null) {
|
||||
// Call stub deploy methods according to the message format
|
||||
if (!messageFormat.toString().equals("wso2event")) {
|
||||
if (!messageFormat.toString().equals("map")) {
|
||||
if (messageFormat.toString().equals("xml")) {
|
||||
eventPublisherAdminServiceStub.deployXmlEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, inputMappingString
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, customMapping);
|
||||
} else if (messageFormat.toString().equals("text")) {
|
||||
eventPublisherAdminServiceStub.deployTextEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, inputMappingString
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, customMapping);
|
||||
} else {
|
||||
eventPublisherAdminServiceStub.deployJsonEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, inputMappingString
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, 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
|
||||
, customMapping);
|
||||
} else if (messageFormat.toString().equals("text")) {
|
||||
eventPublisherAdminServiceStub.deployTextEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, adapterMappingConfiguration.getInputMappingString()
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, customMapping);
|
||||
} else {
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] inputMappingPropertyDtos =
|
||||
addPublisherMappingToDto(inputMappingProperties);
|
||||
eventPublisherAdminServiceStub.deployMapEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicOutputAdapterPropertyDtos, customMapping);
|
||||
eventPublisherAdminServiceStub.deployJsonEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, adapterMappingConfiguration.getInputMappingString()
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, customMapping);
|
||||
}
|
||||
} else {
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] correlationMappingPropertyDtos =
|
||||
addPublisherMappingToDto(correlationMappingProperties);
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] metaMappingPropertyDtos =
|
||||
addPublisherMappingToDto(metaMappingProperties);
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] payloadMappingPropertyDtos =
|
||||
addPublisherMappingToDto(payloadMappingProperties);
|
||||
|
||||
eventPublisherAdminServiceStub.deployWSO2EventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, metaMappingPropertyDtos
|
||||
, correlationMappingPropertyDtos, payloadMappingPropertyDtos
|
||||
, basicOutputAdapterPropertyDtos, customMapping
|
||||
, eventStreamWithVersion);
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] inputMappingPropertyDtos =
|
||||
addPublisherMappingToDto(
|
||||
adapterMappingConfiguration.getInputMappingProperties()
|
||||
);
|
||||
eventPublisherAdminServiceStub.deployMapEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicOutputAdapterPropertyDtos, customMapping);
|
||||
}
|
||||
|
||||
} 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);
|
||||
}
|
||||
|
||||
} finally {
|
||||
cleanup(eventPublisherAdminServiceStub);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name plan name
|
||||
* @param isEdited is plan edited
|
||||
* @param plan plan data
|
||||
* @throws RemoteException exception that may occur during a remote method call
|
||||
* @throws UserStoreException exception that may occur during JWT token generation
|
||||
* @throws JWTClientException exception that may occur during connecting to client store
|
||||
* @throws InvalidExecutionPlanException exception that may occur if execution plan validation fails
|
||||
* Publish a siddhi execution plan using a stub
|
||||
*
|
||||
* @param name Plan name
|
||||
* @param isEdited Is plan edited
|
||||
* @param plan Plan data
|
||||
* @throws RemoteException Exception that may occur during a remote method call
|
||||
* @throws UserStoreException Exception that may occur during JWT token generation
|
||||
* @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,
|
||||
InvalidExecutionPlanException {
|
||||
throws RemoteException, UserStoreException, JWTClientException {
|
||||
EventProcessorAdminServiceStub eventProcessorAdminServiceStub = null;
|
||||
try {
|
||||
eventProcessorAdminServiceStub = DeviceMgtAPIUtils.getEventProcessorAdminServiceStub();
|
||||
// Validate the plan code
|
||||
String validationResponse = eventProcessorAdminServiceStub.validateExecutionPlan(plan);
|
||||
if (validationResponse.equals("success")) {
|
||||
if (!isEdited) {
|
||||
// Create a new plan
|
||||
eventProcessorAdminServiceStub.deployExecutionPlan(plan);
|
||||
} else {
|
||||
// Edit plan
|
||||
eventProcessorAdminServiceStub.editActiveExecutionPlan(plan, name);
|
||||
}
|
||||
} else {
|
||||
ErrorDTO errorDTO = new ErrorDTO();
|
||||
errorDTO.setMessage(validationResponse);
|
||||
log.error(validationResponse);
|
||||
throw new InvalidExecutionPlanException(errorDTO);
|
||||
}
|
||||
} finally {
|
||||
@ -646,18 +540,74 @@ public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifac
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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++) {
|
||||
for (Attribute attribute : attributes) {
|
||||
EventStreamAttributeDto eventStreamAttributeDto = new EventStreamAttributeDto();
|
||||
eventStreamAttributeDto.setAttributeName(attributes.get(i).getName());
|
||||
eventStreamAttributeDto.setAttributeType(attributes.get(i).getType().toString());
|
||||
eventStreamAttributeDtos[i] = eventStreamAttributeDto;
|
||||
eventStreamAttributeDto.setAttributeName(attribute.getName());
|
||||
eventStreamAttributeDto.setAttributeType(attribute.getType().toString());
|
||||
|
||||
}
|
||||
return eventStreamAttributeDtos;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate adapter payload attributes
|
||||
*
|
||||
* @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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate adapter mapping attributes
|
||||
* <p>
|
||||
* Conditions
|
||||
* - if both inputMappingProperties and namespaceMappingProperties null check remaining property lists
|
||||
* - if all correlationMappingProperties, payloadMappingProperties, metaMappingProperties null log error
|
||||
* - if message format is null change the final result to TRUE
|
||||
* - else continue
|
||||
*
|
||||
* @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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This will set payload of receiver attributes to the DTO
|
||||
*
|
||||
* @param adapterProperties List of receiver attributes
|
||||
* @return DTO with all the receiver attributes
|
||||
*/
|
||||
private BasicInputAdapterPropertyDto[] addReceiverConfigToDto(
|
||||
List<AdapterProperty> adapterProperties) {
|
||||
BasicInputAdapterPropertyDto[] basicInputAdapterPropertyDtos
|
||||
@ -671,7 +621,14 @@ public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifac
|
||||
return basicInputAdapterPropertyDtos;
|
||||
}
|
||||
|
||||
private EventMappingPropertyDto[] addReceiverMappingToDto(List<MappingProperty> mapProperties) {
|
||||
/**
|
||||
* This will set payload of receiver mapping attributes to the DTO
|
||||
*
|
||||
* @param mapProperties List of receiver mapping attributes
|
||||
* @return DTO with all the receiver mapping attributes
|
||||
*/
|
||||
private EventMappingPropertyDto[] addReceiverMappingToDto
|
||||
(List<MappingProperty> mapProperties) {
|
||||
EventMappingPropertyDto[] eventMappingPropertyDtos = new EventMappingPropertyDto[mapProperties.size()];
|
||||
for (int i = 0; i < mapProperties.size(); i++) {
|
||||
EventMappingPropertyDto eventMappingPropertyDto = new EventMappingPropertyDto();
|
||||
@ -683,6 +640,12 @@ public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifac
|
||||
return eventMappingPropertyDtos;
|
||||
}
|
||||
|
||||
/**
|
||||
* This will set payload of publisher attributes to the DTO
|
||||
*
|
||||
* @param adapterProperties List of publisher attributes
|
||||
* @return DTO with all the publisher attributes
|
||||
*/
|
||||
private BasicOutputAdapterPropertyDto[] addPublisherConfigToDto(
|
||||
List<AdapterProperty> adapterProperties) {
|
||||
BasicOutputAdapterPropertyDto[] basicOutputAdapterPropertyDtos =
|
||||
@ -697,8 +660,14 @@ public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifac
|
||||
return basicOutputAdapterPropertyDtos;
|
||||
}
|
||||
|
||||
/**
|
||||
* This will set payload of publisher mapping attributes to the DTO
|
||||
*
|
||||
* @param mapProperties List of publisher mapping attributes
|
||||
* @return DTO with all the publisher mapping attributes
|
||||
*/
|
||||
private org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] addPublisherMappingToDto
|
||||
(List<MappingProperty> mapProperties) {
|
||||
(List<MappingProperty> mapProperties) {
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] eventMappingPropertyDtos
|
||||
= new org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[mapProperties.size()];
|
||||
for (int i = 0; i < mapProperties.size(); i++) {
|
||||
@ -712,6 +681,11 @@ public class AnalyticsArtifactsManagementServiceImpl implements AnalyticsArtifac
|
||||
return eventMappingPropertyDtos;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean Service client in the stub
|
||||
*
|
||||
* @param stub Stud that needs to be cleaned
|
||||
*/
|
||||
private void cleanup(Stub stub) {
|
||||
if (stub != null) {
|
||||
try {
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -1724,6 +1724,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
return deviceLocationHistories;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteDevices(List<String> deviceIdentifiers, List<Integer> deviceIds, List<Integer> enrollmentIds)
|
||||
throws DeviceManagementDAOException {
|
||||
Connection conn;
|
||||
@ -1793,8 +1794,8 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg ="Error occurred while deleting the devices: " + deviceIdentifiers;
|
||||
log.error(msg,e);
|
||||
String msg = "Error occurred while deleting the devices: " + deviceIdentifiers;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
}
|
||||
@ -1808,9 +1809,14 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
private void removeDeviceDetail(Connection conn, List<Integer> deviceIds) throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_DETAIL WHERE DEVICE_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, deviceIds);
|
||||
if (!executeBatchOperation(conn, sql, deviceIds)) {
|
||||
String msg = "Failed to remove device details of devices with deviceIds : " + deviceIds +
|
||||
" while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing device details.";
|
||||
String msg = "SQL error occurred while removing device details of devices with deviceIds : " + deviceIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -1825,9 +1831,14 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
private void removeDeviceLocation(Connection conn, List<Integer> deviceIds) throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_LOCATION WHERE DEVICE_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, deviceIds);
|
||||
if (!executeBatchOperation(conn, sql, deviceIds)) {
|
||||
String msg = "Failed to remove locations of devices with deviceIds : " + deviceIds
|
||||
+ " while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while obtaining locations of devices.";
|
||||
String msg = "SQL error occurred while removing locations of devices with deviceIds : " + deviceIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -1842,9 +1853,14 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
private void removeDeviceInfo(Connection conn, List<Integer> deviceIds) throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_INFO WHERE DEVICE_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, deviceIds);
|
||||
if (!executeBatchOperation(conn, sql, deviceIds)) {
|
||||
String msg = "Failed to remove device info of devices with deviceIds : " + deviceIds
|
||||
+ " while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing device info.";
|
||||
String msg = "SQL error occurred while removing device info of devices with deviceIds : " + deviceIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -1859,9 +1875,14 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
private void removeDeviceNotification(Connection conn, List<Integer> deviceIds) throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_NOTIFICATION WHERE DEVICE_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, deviceIds);
|
||||
if (!executeBatchOperation(conn, sql, deviceIds)) {
|
||||
String msg = "Failed to remove device notifications of devices with deviceIds : " + deviceIds +
|
||||
" while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing device notifications.";
|
||||
String msg = "SQL error occurred while removing device notifications of devices with deviceIds : " + deviceIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -1878,9 +1899,15 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_APPLICATION_MAPPING WHERE DEVICE_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, deviceIds);
|
||||
if (!executeBatchOperation(conn, sql, deviceIds)) {
|
||||
String msg = "Failed to remove device application mapping of of devices with deviceIds : " + deviceIds +
|
||||
" while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing device application mapping";
|
||||
String msg = "SQL error occurred while removing device application mapping of devices with deviceIds : "
|
||||
+ deviceIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -1896,9 +1923,14 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_POLICY_APPLIED WHERE DEVICE_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, deviceIds);
|
||||
if (!executeBatchOperation(conn, sql, deviceIds)) {
|
||||
String msg = "Failed to remove policies applied on devices with deviceIds : " + deviceIds +
|
||||
" while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing policies applied on devices";
|
||||
String msg = "SQL error occurred while removing policies applied on devices with deviceIds : " + deviceIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -1913,9 +1945,14 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
private void removeDevicePolicy(Connection conn, List<Integer> deviceIds) throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_POLICY WHERE DEVICE_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, deviceIds);
|
||||
if (!executeBatchOperation(conn, sql, deviceIds)) {
|
||||
String msg = "Failed to remove policies of devices with deviceIds : " + deviceIds +
|
||||
" while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing policies of devices";
|
||||
String msg = "SQL error occurred while removing policies of devices with deviceIds : " + deviceIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -1931,9 +1968,15 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_DETAIL WHERE ENROLMENT_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, enrollmentIds);
|
||||
if (!executeBatchOperation(conn, sql, enrollmentIds)) {
|
||||
String msg = "Failed to remove enrollment details of devices with enrollmentIds : " + enrollmentIds
|
||||
+ " while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing enrollment details of devices";
|
||||
String msg = "SQL error occurred while removing enrollment details of devices with enrollmentIds : "
|
||||
+ enrollmentIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -1949,9 +1992,15 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_LOCATION WHERE ENROLMENT_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, enrollmentIds);
|
||||
if (!executeBatchOperation(conn, sql, enrollmentIds)) {
|
||||
String msg = "Failed to remove enrollment locations of devices with enrollmentIds : " + enrollmentIds
|
||||
+ " while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing enrollment locations of devices";
|
||||
String msg = "SQL error occurred while removing enrollment locations of devices with enrollmentIds : "
|
||||
+ enrollmentIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -1967,9 +2016,15 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_INFO WHERE ENROLMENT_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, enrollmentIds);
|
||||
if (!executeBatchOperation(conn, sql, enrollmentIds)) {
|
||||
String msg = "Failed to remove enrollment info of devices with enrollmentIds : " + enrollmentIds
|
||||
+ " while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing enrollment info of devices";
|
||||
String msg = "SQL error occurred while removing enrollment info of devices with enrollmentIds : "
|
||||
+ enrollmentIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -1985,9 +2040,15 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_APPLICATION_MAPPING WHERE ENROLMENT_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, enrollmentIds);
|
||||
if (!executeBatchOperation(conn, sql, enrollmentIds)) {
|
||||
String msg = "Failed to remove enrollment device application mapping of devices with enrollmentIds : "
|
||||
+ enrollmentIds + " while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing enrollment device application mapping";
|
||||
String msg = "SQL error occurred while removing enrollment device application mapping of devices with " +
|
||||
"enrollmentIds : " + enrollmentIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -2003,9 +2064,15 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_OPERATION_RESPONSE WHERE ENROLMENT_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, enrollmentIds);
|
||||
if (!executeBatchOperation(conn, sql, enrollmentIds)) {
|
||||
String msg = "Failed to remove device operation response of devices with enrollmentIds : "
|
||||
+ enrollmentIds + " while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing device operation response";
|
||||
String msg = "SQL error occurred while removing device operation response of devices with enrollmentIds : "
|
||||
+ enrollmentIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -2021,9 +2088,15 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_ENROLMENT_OP_MAPPING WHERE ENROLMENT_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, enrollmentIds);
|
||||
if (!executeBatchOperation(conn, sql, enrollmentIds)) {
|
||||
String msg = "Failed to remove enrollment operation mapping of devices with enrollmentIds : "
|
||||
+ enrollmentIds + " while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing enrollment operation mapping";
|
||||
String msg = "SQL error occurred while removing enrollment operation mapping of devices with enrollmentIds :"
|
||||
+ enrollmentIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -2039,9 +2112,15 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_ENROLMENT WHERE DEVICE_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, enrollmentIds);
|
||||
if (!executeBatchOperation(conn, sql, enrollmentIds)) {
|
||||
String msg = "Failed to remove enrollments of devices with enrollmentIds : " + enrollmentIds
|
||||
+ " while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing enrollments of devices";
|
||||
String msg = "SQL error occurred while removing enrollments of devices with enrollmentIds : "
|
||||
+ enrollmentIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -2056,9 +2135,15 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
private void removeDeviceGroupMapping(Connection conn, List<Integer> deviceIds) throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE_GROUP_MAP WHERE DEVICE_ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, deviceIds);
|
||||
if (!executeBatchOperation(conn, sql, deviceIds)) {
|
||||
String msg = "Failed to remove device group mapping of devices with deviceIds : " + deviceIds
|
||||
+ " while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing device group mapping";
|
||||
String msg = "SQL error occurred while removing device group mapping of devices with deviceIds : "
|
||||
+ deviceIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -2073,9 +2158,13 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
private void removeDevice(Connection conn, List<Integer> deviceIds) throws DeviceManagementDAOException {
|
||||
String sql = "DELETE FROM DM_DEVICE WHERE ID = ?";
|
||||
try {
|
||||
executeBatchOperation(conn, sql, deviceIds);
|
||||
if (!executeBatchOperation(conn, sql, deviceIds)) {
|
||||
String msg = "Failed to remove devices with deviceIds : " + deviceIds + " while executing batch operation";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementDAOException(msg);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while removing devices.";
|
||||
String msg = "SQL error occurred while removing devices with deviceIds : " + deviceIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
@ -2085,12 +2174,15 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
* This method executes batch operations for a given list of primary keys
|
||||
* where the statement only has one param of type int, following the given pattern:
|
||||
* DELETE FROM TABLE WHERE ID = ?
|
||||
*
|
||||
* This method does not check if the number of rows affected by the executeBatch() method is 0
|
||||
* because there can be tables with no records to delete.
|
||||
* @param sql SQL statement
|
||||
* @param conn Connection object
|
||||
* @param identifiers list of device ids (primary keys)
|
||||
* @throws SQLException if deletion fails.
|
||||
*/
|
||||
private void executeBatchOperation(Connection conn, String sql, List<Integer> identifiers) throws SQLException {
|
||||
private boolean executeBatchOperation(Connection conn, String sql, List<Integer> identifiers) throws SQLException {
|
||||
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||
if (conn.getMetaData().supportsBatchUpdates()) {
|
||||
for (int identifier : identifiers) {
|
||||
@ -2098,19 +2190,18 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
ps.addBatch();
|
||||
}
|
||||
for (int i : ps.executeBatch()) {
|
||||
if (i == 0 || i == Statement.SUCCESS_NO_INFO || i == Statement.EXECUTE_FAILED) {
|
||||
break;
|
||||
if (i == Statement.SUCCESS_NO_INFO || i == Statement.EXECUTE_FAILED) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (int enrollmentId : identifiers) {
|
||||
ps.setInt(1, enrollmentId);
|
||||
if (ps.executeUpdate() == 0) {
|
||||
break;
|
||||
}
|
||||
for (int identifier : identifiers) {
|
||||
ps.setInt(1, identifier);
|
||||
ps.executeUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private int getDeviceId(Connection conn, DeviceIdentifier deviceIdentifier, int tenantId)
|
||||
|
||||
@ -528,43 +528,39 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteDevices(List<String> deviceIdentifiers) throws DeviceManagementException, InvalidDeviceException {
|
||||
List<Integer> deviceIds = new ArrayList<>();
|
||||
public boolean deleteDevices(List<String> deviceIdentifiers) throws DeviceManagementException,
|
||||
InvalidDeviceException {
|
||||
if (deviceIdentifiers == null || deviceIdentifiers.isEmpty()) {
|
||||
String msg = "Required values of device identifiers are not set to permanently delete device/s.";
|
||||
log.error(msg);
|
||||
throw new InvalidDeviceException(msg);
|
||||
}
|
||||
HashSet<Integer> deviceIds = new HashSet<>();
|
||||
List<Integer> enrollmentIds = new ArrayList<>();
|
||||
List<String> validDeviceIdentifiers = new ArrayList<>();
|
||||
Map<String, List<String>> deviceIdentifierMap = new HashMap<>();
|
||||
Map<String, DeviceManager> deviceManagerMap = new HashMap<>();
|
||||
List<DeviceCacheKey> deviceCacheKeyList = new ArrayList<>();
|
||||
int tenantId = this.getTenantId();
|
||||
List<Device> existingDevices;
|
||||
try {
|
||||
DeviceManagementDAOFactory.beginTransaction();
|
||||
existingDevices = deviceDAO.getDevicesByIdentifiers(deviceIdentifiers, tenantId);
|
||||
if (existingDevices.size() != deviceIdentifiers.size()) {
|
||||
for (Device device : existingDevices) {
|
||||
deviceIdentifiers.remove(device.getDeviceIdentifier());
|
||||
}
|
||||
String msg =
|
||||
"Couldn't find device ids for all the requested device identifiers. " +
|
||||
"Therefore payload should contain device identifiers which are not in the system. " +
|
||||
"Invalid device identifiers are " + deviceIdentifiers.toString();
|
||||
log.error(msg);
|
||||
DeviceManagementDAOFactory.rollbackTransaction();
|
||||
throw new InvalidDeviceException(msg);
|
||||
}
|
||||
List<Device> existingDevices = deviceDAO.getDevicesByIdentifiers(deviceIdentifiers, tenantId);
|
||||
DeviceCacheKey deviceCacheKey;
|
||||
for (Device device : existingDevices) {
|
||||
if (!device.getEnrolmentInfo().getStatus().equals(EnrolmentInfo.Status.REMOVED)) {
|
||||
String msg = "Device " + device.getDeviceIdentifier() + " of type " + device.getType()
|
||||
+ " is not dis-enrolled to permanently delete the device";
|
||||
log.error(msg);
|
||||
if (!EnrolmentInfo.Status.REMOVED.equals(device.getEnrolmentInfo().getStatus())) {
|
||||
DeviceManagementDAOFactory.rollbackTransaction();
|
||||
String msg = "Device " + device.getDeviceIdentifier() + " of type " + device.getType()
|
||||
+ " is not dis-enrolled to permanently delete the device";
|
||||
log.error(msg);
|
||||
throw new InvalidDeviceException(msg);
|
||||
}
|
||||
DeviceCacheKey deviceCacheKey = new DeviceCacheKey();
|
||||
deviceCacheKey = new DeviceCacheKey();
|
||||
deviceCacheKey.setDeviceId(device.getDeviceIdentifier());
|
||||
deviceCacheKey.setDeviceType(device.getType());
|
||||
deviceCacheKey.setTenantId(tenantId);
|
||||
deviceCacheKeyList.add(deviceCacheKey);
|
||||
deviceIds.add(device.getId());
|
||||
validDeviceIdentifiers.add(device.getDeviceIdentifier());
|
||||
enrollmentIds.add(device.getEnrolmentInfo().getId());
|
||||
if (deviceIdentifierMap.containsKey(device.getType())) {
|
||||
deviceIdentifierMap.get(device.getType()).add(device.getDeviceIdentifier());
|
||||
@ -573,17 +569,23 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
||||
new ArrayList<>(Arrays.asList(device.getDeviceIdentifier())));
|
||||
DeviceManager deviceManager = this.getDeviceManager(device.getType());
|
||||
if (deviceManager == null) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Device Manager associated with the device type '"
|
||||
+ device.getType() + "' is null. Therefore, not attempting method 'deleteDevice'");
|
||||
}
|
||||
log.error("Device Manager associated with the device type '" +device.getType() +
|
||||
"' is null. Therefore, not attempting method 'deleteDevice'");
|
||||
return false;
|
||||
}
|
||||
deviceManagerMap.put(device.getType(), deviceManager);
|
||||
}
|
||||
}
|
||||
if (deviceIds.isEmpty()) {
|
||||
String msg = "No device IDs found for the device identifiers '" + deviceIdentifiers + "'";
|
||||
log.error(msg);
|
||||
throw new InvalidDeviceException(msg);
|
||||
}
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Permanently deleting the details of devices : " + validDeviceIdentifiers);
|
||||
}
|
||||
//deleting device from the core
|
||||
deviceDAO.deleteDevices(deviceIdentifiers, deviceIds, enrollmentIds);
|
||||
deviceDAO.deleteDevices(validDeviceIdentifiers, new ArrayList<>(deviceIds), enrollmentIds);
|
||||
for (Map.Entry<String, DeviceManager> entry : deviceManagerMap.entrySet()) {
|
||||
try {
|
||||
// deleting device from the plugin level
|
||||
@ -600,6 +602,9 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
||||
}
|
||||
DeviceManagementDAOFactory.commitTransaction();
|
||||
this.removeDevicesFromCache(deviceCacheKeyList);
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Successfully permanently deleted the details of devices : " + validDeviceIdentifiers);
|
||||
}
|
||||
return true;
|
||||
} catch (TransactionManagementException e) {
|
||||
String msg = "Error occurred while initiating transaction";
|
||||
@ -611,6 +616,8 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
||||
"' devices";
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementException(msg, e);
|
||||
} finally {
|
||||
DeviceManagementDAOFactory.closeConnection();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -220,7 +220,6 @@ public class DeviceTypePluginDAOImpl implements PluginDAO {
|
||||
public boolean deleteDevices(List<String> deviceIdentifiers) throws DeviceTypeMgtPluginException {
|
||||
try {
|
||||
Connection conn = deviceTypeDAOHandler.getConnection();
|
||||
boolean status = true;
|
||||
try (PreparedStatement ps = conn.prepareStatement(deleteDBQueryForDeleteDevice)) {
|
||||
if (conn.getMetaData().supportsBatchUpdates()) {
|
||||
for (String deviceId : deviceIdentifiers) {
|
||||
@ -228,22 +227,18 @@ public class DeviceTypePluginDAOImpl implements PluginDAO {
|
||||
ps.addBatch();
|
||||
}
|
||||
for (int i : ps.executeBatch()) {
|
||||
if (i == 0 || i == Statement.SUCCESS_NO_INFO || i == Statement.EXECUTE_FAILED) {
|
||||
status = false;
|
||||
break;
|
||||
if (i == Statement.SUCCESS_NO_INFO || i == Statement.EXECUTE_FAILED) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (String deviceId : deviceIdentifiers) {
|
||||
ps.setString(1, deviceId);
|
||||
if (ps.executeUpdate() == 0) {
|
||||
status = false;
|
||||
break;
|
||||
}
|
||||
ps.executeUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
return status;
|
||||
return true;
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while deleting the data in "
|
||||
+ deviceDAODefinition.getDeviceTableName();
|
||||
|
||||
@ -222,7 +222,6 @@ public class PropertyBasedPluginDAOImpl implements PluginDAO {
|
||||
public boolean deleteDevices(List<String> deviceIdentifiers) throws DeviceTypeMgtPluginException {
|
||||
try {
|
||||
Connection conn = deviceTypeDAOHandler.getConnection();
|
||||
boolean status = true;
|
||||
try (PreparedStatement ps = conn.prepareStatement("DELETE FROM DM_DEVICE_PROPERTIES WHERE DEVICE_IDENTIFICATION = ?")) {
|
||||
if (conn.getMetaData().supportsBatchUpdates()) {
|
||||
for (String deviceId : deviceIdentifiers) {
|
||||
@ -230,22 +229,18 @@ public class PropertyBasedPluginDAOImpl implements PluginDAO {
|
||||
ps.addBatch();
|
||||
}
|
||||
for (int i : ps.executeBatch()) {
|
||||
if (i == 0 || i == Statement.SUCCESS_NO_INFO || i == Statement.EXECUTE_FAILED) {
|
||||
status = false;
|
||||
break;
|
||||
if (i == Statement.SUCCESS_NO_INFO || i == Statement.EXECUTE_FAILED) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (String deviceId : deviceIdentifiers) {
|
||||
ps.setString(1, deviceId);
|
||||
if (ps.executeUpdate() == 0) {
|
||||
status = false;
|
||||
break;
|
||||
}
|
||||
ps.executeUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
return status;
|
||||
return true;
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while deleting the data of the devices: '" + deviceIdentifiers + "'of type: "
|
||||
+ deviceType;
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -161,6 +161,7 @@
|
||||
"perm:device:enroll",
|
||||
"perm:geo-service:analytics-view",
|
||||
"perm:geo-service:alerts-manage",
|
||||
"perm:devices:permanent-delete",
|
||||
"appm:read"
|
||||
],
|
||||
"isOAuthEnabled": true,
|
||||
|
||||
@ -623,6 +623,9 @@ var userModule = function () {
|
||||
if (publicMethods.isAuthorized("/permission/admin/device-mgt/admin/devices/update-enrollment")) {
|
||||
permissions["UPDATE_ENROLLMENT"] = true;
|
||||
}
|
||||
if (publicMethods.isAuthorized("/permission/admin/device-mgt/admin/devices/permanent-delete")) {
|
||||
permissions["PERMANENT_DELETE"] = true;
|
||||
}
|
||||
|
||||
return permissions;
|
||||
};
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
{{#equal enrolmentInfo.status "ACTIVE"}}<span><i class="fw fw-success icon-success"></i> Active</span>{{/equal}}
|
||||
{{#equal enrolmentInfo.status "INACTIVE"}}<span><i class="fw fw-warning icon-warning"></i> Inactive</span>{{/equal}}
|
||||
{{#equal enrolmentInfo.status "BLOCKED"}}<span><i class="fw fw-remove icon-danger"></i> Blocked</span>{{/equal}}
|
||||
{{#equal enrolmentInfo.status "REMOVED"}}<span><i class="fw fw-delete icon-danger"></i> Removed</span>{{/equal}}
|
||||
{{#equal enrolmentInfo.status "REMOVED"}}<span><i class="fw fw-disabled icon-danger"></i> Removed</span>{{/equal}}
|
||||
</td>
|
||||
<td class="remove-padding-top" data-search="{{type}}" data-display="{{type}}" data-grid-label="Type">{{type}}</td>
|
||||
<td class="remove-padding-top" data-search="{{enrolmentInfo.ownership}}" data-display="{{enrolmentInfo.ownership}}" data-grid-label="Ownership">{{enrolmentInfo.ownership}}</td>
|
||||
|
||||
@ -218,15 +218,31 @@
|
||||
data-toggle="modal" data-target="#modalDemo">
|
||||
<span class="icon fw-stack">
|
||||
<i class="fw fw-circle-outline fw-stack-2x"></i>
|
||||
<i class="fw fw-delete fw-stack-1x"></i>
|
||||
<i class="fw fw-disabled fw-stack-1x"></i>
|
||||
</span>
|
||||
{{#if group}}
|
||||
Remove from group
|
||||
{{else}}
|
||||
Remove Device
|
||||
Dis-enroll Device
|
||||
{{/if}}
|
||||
</a>
|
||||
</li>
|
||||
<!--permanent delete-->
|
||||
{{#if permissions.permanentDelete}}
|
||||
<li>
|
||||
<a href="#"
|
||||
data-click-event="remove-form"
|
||||
class="btn square-element delete-device-link"
|
||||
data-toggle="modal" data-target="#modalDemo">
|
||||
<span class="icon fw-stack">
|
||||
<i class="fw fw-circle-outline fw-stack-2x"></i>
|
||||
<i class="fw fw-delete fw-stack-1x"></i>
|
||||
</span>
|
||||
Delete Device
|
||||
</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
<!--/permanent delete-->
|
||||
<!--update enrollment-->
|
||||
{{#if permissions.updateEnrollment}}
|
||||
<li>
|
||||
@ -423,6 +439,58 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="delete-device-modal-content" class="hide">
|
||||
<div class="modal-header">
|
||||
<h3 class="pull-left modal-title">
|
||||
{{#if group}}
|
||||
Do you really want to permanently delete this device(s) from '{{group.name}}' group?
|
||||
{{else}}
|
||||
Do you really want to permanently delete this device(s) from your Devices?
|
||||
{{/if}}
|
||||
</h3>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i
|
||||
class="fw fw-cancel"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="buttons">
|
||||
<a href="#" id="delete-device-yes-link" class="btn-operations">
|
||||
Yes
|
||||
</a>
|
||||
|
||||
<a href="#" id="delete-device-cancel-link" class="btn-operations">
|
||||
Cancel
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="delete-device-200-content" class="hide">
|
||||
<div class="modal-header">
|
||||
<h3 class="pull-left modal-title">
|
||||
{{#if group}}
|
||||
Successfully deleted from '{{group.name}}' group.
|
||||
{{else}}
|
||||
Successfully deleted.
|
||||
{{/if}}
|
||||
</h3>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i
|
||||
class="fw fw-cancel"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="buttons">
|
||||
<a href="javascript:hidePopup()" class="btn-operations">Ok</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="edit-device-modal-content" class="hide">
|
||||
<div class="modal-header">
|
||||
<h3 class="pull-left modal-title">
|
||||
@ -475,6 +543,22 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="enrolled-device-delete-content" class="hide">
|
||||
<div class="modal-header">
|
||||
<h3 class="pull-left modal-title">Could not delete devices since some are still
|
||||
enrolled.</h3>
|
||||
</div>
|
||||
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="buttons">
|
||||
<a href="#" id="enrolled-device-delete-link" class="btn-operations">
|
||||
Ok
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="device-400-content" class="hide">
|
||||
<div class="modal-content">
|
||||
<div class="row">
|
||||
|
||||
@ -46,6 +46,9 @@ function onRequest(context) {
|
||||
if (uiPermissions.UPDATE_ENROLLMENT) {
|
||||
viewModel.permissions.updateEnrollment = true;
|
||||
}
|
||||
if (uiPermissions.PERMANENT_DELETE) {
|
||||
viewModel.permissions.permanentDelete = true;
|
||||
}
|
||||
viewModel.currentUser = currentUser;
|
||||
var deviceCount = 0;
|
||||
if (groupId) {
|
||||
|
||||
@ -70,7 +70,7 @@ function InitiateViewOption(url) {
|
||||
var deviceCheckbox = "#ast-container .ctrl-wr-asset .itm-select input[type='checkbox']";
|
||||
var assetContainer = "#ast-container";
|
||||
|
||||
var deviceListing, currentUser, groupId;
|
||||
var deviceListing, currentUser, groupId, hasDeletePermission;
|
||||
|
||||
/*
|
||||
* DOM ready functions.
|
||||
@ -87,8 +87,8 @@ $(document).ready(function () {
|
||||
};
|
||||
|
||||
deviceListing = $("#device-listing");
|
||||
hasDeletePermission = $("#permission").data("permission")['PERMANENT_DELETE'];
|
||||
currentUser = deviceListing.data("current-user");
|
||||
|
||||
groupId = getParameterByName("groupId");
|
||||
|
||||
/* Adding selected class for selected devices */
|
||||
@ -320,7 +320,7 @@ function loadDevices(searchType, searchParam) {
|
||||
html = '<span><i class="fw fw-remove icon-danger"></i> Blocked</span>';
|
||||
break;
|
||||
case 'REMOVED' :
|
||||
html = '<span><i class="fw fw-delete icon-danger"></i> Removed</span>';
|
||||
html = '<span><i class="fw fw-disabled icon-danger"></i> Removed</span>';
|
||||
break;
|
||||
case 'UNREACHABLE' :
|
||||
html = '<span><i class="fw fw-warning icon-warning"></i> Unreachable</span>';
|
||||
@ -361,12 +361,12 @@ function loadDevices(searchType, searchParam) {
|
||||
var portalUrl = $("#device-listing").data("portal-url");
|
||||
var serverUrl = $("#device-listing").data("server-url");
|
||||
var userDomain = $("#device-listing").data("userDomain");
|
||||
var statusCode = row.status;
|
||||
var statURL;
|
||||
if (status != 'REMOVED') {
|
||||
if (statusCode != 'REMOVED') {
|
||||
html = '';
|
||||
|
||||
if (analyticsEnabled(row.deviceType)) {
|
||||
|
||||
// redirecting to respective analytics view depending on device configs
|
||||
switch (getAnalyticsView(deviceType)) {
|
||||
case "DAS" : { statURL =portalUrl + "/portal/t/"+ userDomain+ "/dashboards/android-iot/battery?owner=" +currentUser+"&deviceId=";break;}
|
||||
@ -405,17 +405,115 @@ function loadDevices(searchType, searchParam) {
|
||||
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
|
||||
+ '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Remove from group">'
|
||||
+ '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
|
||||
+ '<i class="fw fw-delete fw-stack-1x"></i></span>'
|
||||
+ '<i class="fw fw-disabled fw-stack-1x"></i></span>'
|
||||
+ '<span class="hidden-xs hidden-on-grid-view">Remove from group</span>';
|
||||
} else {
|
||||
html +=
|
||||
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-device-link" '
|
||||
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
|
||||
+ '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Dis-enroll">'
|
||||
+ '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
|
||||
+ '<i class="fw fw-disabled fw-stack-1x"></i></span>'
|
||||
+ '<span class="hidden-xs hidden-on-grid-view">Dis-enroll</span>';
|
||||
}
|
||||
} else if (statusCode == 'REMOVED' && hasDeletePermission) {
|
||||
html = '';
|
||||
|
||||
if (analyticsEnabled(row.deviceType)) {
|
||||
// redirecting to respective analytics view depending on device configs
|
||||
switch (getAnalyticsView(deviceType)) {
|
||||
case "DAS" : {
|
||||
statURL = portalUrl + "/portal/t/" + userDomain + "/dashboards/android-iot/battery?owner=" + currentUser + "&deviceId=";
|
||||
break;
|
||||
}
|
||||
default : {
|
||||
statURL = context + "/device/" + row.deviceType + "/analytics?deviceId="
|
||||
}
|
||||
}
|
||||
|
||||
html += '<a href="' + statURL +
|
||||
deviceIdentifier + '&deviceName=' + row.name + '" ' + 'data-click-event="remove-form"' +
|
||||
' class="btn padding-reduce-on-grid-view" data-placement="top" data-toggle="tooltip" data-original-title="Analytics"><span class="fw-stack">' +
|
||||
'<i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-statistics fw-stack-1x"></i></span>' +
|
||||
'<span class="hidden-xs hidden-on-grid-view">Analytics</span>';
|
||||
}
|
||||
|
||||
if (!groupId && groupingEnabled(row.deviceType)) {
|
||||
html +=
|
||||
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view group-device-link" '
|
||||
+
|
||||
'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
|
||||
+ '" data-devicename="' +
|
||||
row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Group"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>' +
|
||||
'<i class="fw fw-group fw-stack-1x"></i></span>' +
|
||||
'<span class="hidden-xs hidden-on-grid-view">Group</span></a>';
|
||||
}
|
||||
|
||||
html +=
|
||||
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view edit-device-link" '
|
||||
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
|
||||
+ '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Edit">'
|
||||
+ '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
|
||||
+ '<i class="fw fw-edit fw-stack-1x"></i></span>'
|
||||
+ '<span class="hidden-xs hidden-on-grid-view">Edit</span></a>';
|
||||
var groupOwner = $('#group_owner').text();
|
||||
if (groupId && groupOwner != "wso2.system.user") {
|
||||
html +=
|
||||
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view delete-device-link" '
|
||||
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
|
||||
+ '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Remove from group">'
|
||||
+ '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
|
||||
+ '<i class="fw fw-delete fw-stack-1x"></i></span>'
|
||||
+ '<span class="hidden-xs hidden-on-grid-view">Remove from group</span>';
|
||||
} else {
|
||||
html +=
|
||||
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view delete-device-link" '
|
||||
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
|
||||
+ '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Delete">'
|
||||
+ '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
|
||||
+ '<i class="fw fw-delete fw-stack-1x"></i></span>'
|
||||
+ '<span class="hidden-xs hidden-on-grid-view">Delete</span>';
|
||||
}
|
||||
} else {
|
||||
html = '';
|
||||
|
||||
if (analyticsEnabled(row.deviceType)) {
|
||||
// redirecting to respective analytics view depending on device configs
|
||||
switch (getAnalyticsView(deviceType)) {
|
||||
case "DAS" : {
|
||||
statURL = portalUrl + "/portal/t/" + userDomain + "/dashboards/android-iot/battery?owner=" + currentUser + "&deviceId=";
|
||||
break;
|
||||
}
|
||||
default : {
|
||||
statURL = context + "/device/" + row.deviceType + "/analytics?deviceId="
|
||||
}
|
||||
}
|
||||
|
||||
html += '<a href="' + statURL +
|
||||
deviceIdentifier + '&deviceName=' + row.name + '" ' + 'data-click-event="remove-form"' +
|
||||
' class="btn padding-reduce-on-grid-view" data-placement="top" data-toggle="tooltip" data-original-title="Analytics"><span class="fw-stack">' +
|
||||
'<i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-statistics fw-stack-1x"></i></span>' +
|
||||
'<span class="hidden-xs hidden-on-grid-view">Analytics</span>';
|
||||
}
|
||||
|
||||
if (!groupId && groupingEnabled(row.deviceType)) {
|
||||
html +=
|
||||
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view group-device-link" '
|
||||
+
|
||||
'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
|
||||
+ '" data-devicename="' +
|
||||
row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Group"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>' +
|
||||
'<i class="fw fw-group fw-stack-1x"></i></span>' +
|
||||
'<span class="hidden-xs hidden-on-grid-view">Group</span></a>';
|
||||
}
|
||||
|
||||
html +=
|
||||
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view edit-device-link" '
|
||||
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
|
||||
+ '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Edit">'
|
||||
+ '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
|
||||
+ '<i class="fw fw-edit fw-stack-1x"></i></span>'
|
||||
+ '<span class="hidden-xs hidden-on-grid-view">Edit</span></a>';
|
||||
}
|
||||
return html;
|
||||
}
|
||||
@ -423,6 +521,11 @@ function loadDevices(searchType, searchParam) {
|
||||
];
|
||||
|
||||
var fnCreatedRow = function (row, data, dataIndex) {
|
||||
if (data.status != "REMOVED") {
|
||||
$(row).attr('data-type', 'selectable');
|
||||
} else {
|
||||
$(row).attr('data-type', 'non-selectable');
|
||||
}
|
||||
var model = htmlspecialchars(getPropertyValue(data.properties, 'DEVICE_MODEL'));
|
||||
var vendor = htmlspecialchars(getPropertyValue(data.properties, 'VENDOR'));
|
||||
var owner = htmlspecialchars(data.userPattern);
|
||||
@ -787,6 +890,60 @@ function attachDeviceEvents() {
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Following click function would execute
|
||||
* when a user clicks on "Delete" link
|
||||
* on Device Management page in Entgra MDM Console.
|
||||
*/
|
||||
$("a.delete-device-link").click(function () {
|
||||
var deviceIdentifiers = [];
|
||||
var deviceId = $(this).data("deviceid");
|
||||
if (deviceId) {
|
||||
deviceIdentifiers = [deviceId];
|
||||
$(modalPopupContent).html($('#delete-device-modal-content').html());
|
||||
showPopup();
|
||||
} else {
|
||||
var selectedDevices = getSelectedDevices();
|
||||
if (selectedDevices.length == 0) {
|
||||
$(modalPopupContent).html($('#no-device-selected').html());
|
||||
$("a#no-device-selected-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
showPopup();
|
||||
return;
|
||||
} else {
|
||||
var hasEnrolledDevice;
|
||||
for (var i = 0; i < selectedDevices.length; i++) {
|
||||
if (selectedDevices[i].selectability == 'selectable') {
|
||||
hasEnrolledDevice = true;
|
||||
break;
|
||||
} else {
|
||||
deviceIdentifiers.push(selectedDevices[i].id);
|
||||
}
|
||||
}
|
||||
if (hasEnrolledDevice) {
|
||||
$(modalPopupContent).html($('#enrolled-device-delete-content').html());
|
||||
$("a#enrolled-device-delete-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
showPopup();
|
||||
} else {
|
||||
$(modalPopupContent).html($('#delete-device-modal-content').html());
|
||||
showPopup();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$("a#delete-device-yes-link").click(function () {
|
||||
deleteDevices(deviceIdentifiers);
|
||||
});
|
||||
|
||||
$("a#delete-device-cancel-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Following click function would execute
|
||||
* when a user clicks on "Edit" link
|
||||
@ -1100,6 +1257,19 @@ function removeDevices(deviceIdentifiers) {
|
||||
});
|
||||
}
|
||||
|
||||
function deleteDevices(deviceIdentifiers) {
|
||||
var serviceURL = "/api/device-mgt/v1.0/admin/devices/permanent-delete";
|
||||
invokerUtil.put(serviceURL, deviceIdentifiers, function (message) {
|
||||
$(modalPopupContent).html($('#delete-device-200-content').html());
|
||||
setTimeout(function () {
|
||||
hidePopup();
|
||||
location.reload(false);
|
||||
}, 2000);
|
||||
}, function (jqXHR) {
|
||||
displayDeviceErrors(jqXHR);
|
||||
});
|
||||
}
|
||||
|
||||
function displayDeviceErrors(jqXHR) {
|
||||
showPopup();
|
||||
if (jqXHR.status == 400) {
|
||||
@ -1144,7 +1314,8 @@ function getSelectedDevices() {
|
||||
deviceList.push(
|
||||
{
|
||||
"id": $(thisTable.api().row(this).node()).data('deviceid'),
|
||||
"type": $(thisTable.api().row(this).node()).data('devicetype')
|
||||
"type": $(thisTable.api().row(this).node()).data('devicetype'),
|
||||
"selectability": $(thisTable.api().row(this).node()).data('type')
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@ -92,7 +92,7 @@
|
||||
data-current="policy-naming" data-next="policy-criteria">Back</a>
|
||||
<a href="javascript:void(0)" class="wr-btn wizard-stepper"
|
||||
data-current="policy-naming-publish" data-next="policy-message"
|
||||
data-validate="true">Publish</a>
|
||||
data-validate="true">Save and Publish</a>
|
||||
<a href="javascript:void(0)" class="wr-btn wizard-stepper"
|
||||
data-current="policy-naming"
|
||||
data-next="policy-message" data-validate="true">Save</a>
|
||||
|
||||
@ -148,6 +148,7 @@ $("#policy-name-input").focus(function () {
|
||||
skipStep["policy-platform"] = function (policyPayloadObj) {
|
||||
policy["name"] = policyPayloadObj["policyName"];
|
||||
policy["platform"] = policyPayloadObj["profile"]["deviceType"];
|
||||
policy["policyType"] = policyPayloadObj["policyType"];
|
||||
|
||||
var userRoleInput = $("#user-roles-input");
|
||||
var ownershipInput = $("#ownership-input");
|
||||
@ -488,6 +489,7 @@ var updatePolicy = function (policy, state) {
|
||||
var payload = {
|
||||
"policyName": policy["policyName"],
|
||||
"description": policy["description"],
|
||||
"policyType": policy["policyType"],
|
||||
"compliance": policy["selectedNonCompliantAction"],
|
||||
"ownershipType": null,
|
||||
"profile": {
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>email-sender</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,13 +22,13 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>identity-extensions</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.oauth.extensions</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - OAuth Extensions</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>identity-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>identity-extensions</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>policy-mgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.complex.policy.decision.point</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - Policy Decision Point</name>
|
||||
<description>WSO2 Carbon - Policy Decision Point</description>
|
||||
|
||||
@ -3,14 +3,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>policy-mgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.policy.decision.point</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - Policy Decision Point</name>
|
||||
<description>WSO2 Carbon - Policy Decision Point</description>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>policy-mgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.policy.information.point</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - Policy Information Point</name>
|
||||
<description>WSO2 Carbon - Policy Information Point</description>
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>policy-mgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.policy.mgt.common</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - Policy Management Common</name>
|
||||
<description>WSO2 Carbon - Policy Management Common</description>
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>policy-mgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.policy.mgt.core</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - Policy Management Core</name>
|
||||
<description>WSO2 Carbon - Policy Management Core</description>
|
||||
|
||||
@ -23,13 +23,13 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>policy-mgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - Policy Management Component</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -21,14 +21,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>webapp-authenticator-framework</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.webapp.authenticator.framework</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - Web Application Authenticator Framework Bundle</name>
|
||||
<description>WSO2 Carbon - Web Application Authenticator Framework Bundle</description>
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>webapp-authenticator-framework</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - Webapp Authenticator Framework</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -21,14 +21,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>apimgt-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.apimgt.application.extension.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - API Management Application Extension Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains an implementation of a api application registration, which takes care of subscription
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>apimgt-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.apimgt.handler.server.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - Device Management - APIM handler Server Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains the handler for the api authentications
|
||||
|
||||
@ -21,13 +21,13 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>apimgt-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.apimgt.integration.client.feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - APIM Integration Client Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -21,14 +21,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>apimgt-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.apimgt.webapp.publisher.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - API Management Webapp Publisher Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains an implementation of a Tomcat lifecycle listener, which takes care of publishing
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>apimgt-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - API Management Extensions Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>certificate-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>certificate-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>certificate-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.certificate.mgt.server.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - Certificate Management Server Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains the core bundles required for back-end Certificate Management functionality
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>certificate-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - Certificate Management Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - Device Type Deployer Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>WSO2 Carbon - Device Type Deployer Feature</description>
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - FCM Based Push Notification Provider Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>WSO2 Carbon - MQTT Based Push Notification Provider Feature</description>
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - MQTT Based Push Notification Provider Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>WSO2 Carbon - MQTT Based Push Notification Provider Feature</description>
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - MQTT Based Push Notification Provider Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>WSO2 Carbon - MQTT Based Push Notification Provider Feature</description>
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - XMPP Based Push Notification Provider Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>WSO2 Carbon - XMPP Based Push Notification Provider Feature</description>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.analytics.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - Device Management Server Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains bundles related to device analytics data publisher and ws proxy</description>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -4,14 +4,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.extensions.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - Device Management Extensions Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains common extensions used by key device management functionalities
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.server.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - Device Management Server Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains the core bundles required for Back-end Device Management functionality
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>device-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>email-sender-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.email.sender.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - Email Sender Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains the core bundles required for email sender related functionality
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>email-sender-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - Email Sender Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -23,14 +23,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>jwt-client-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.identity.jwt.client.extension.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - JWT Client Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains jwt client implementation from which we can get a access token using the jwt
|
||||
|
||||
@ -23,13 +23,13 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jwt-client-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - JWT Client Extension Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -23,14 +23,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>oauth-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.oauth.extensions.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - Device Mgt OAuth Extensions Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains devicemgt related OAuth extensions</description>
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>oauth-extensions-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - Device Management OAuth Extensions Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -23,14 +23,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>policy-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.policy.mgt.server.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - Policy Management Server Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains the core bundles required for Back-end Device Management functionality
|
||||
|
||||
@ -23,14 +23,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>policy-mgt-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - Policy Management Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>webapp-authenticator-framework-feature</artifactId>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.webapp.authenticator.framework.server.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.2.9-SNAPSHOT</version>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - Webapp Authenticator Framework Server Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains the core bundles required for Back-end Device Management functionality
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user