forked from community/device-mgt-core
Merge branch 'master' of https://repository.entgra.net/community/device-mgt-core into try_it
commit
a9a7a03ebd
@ -0,0 +1,119 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>5.0.21-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>io.entgra.device.mgt.core.apimgt.analytics.extension</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
<name>Entgra - API mgt analytics extension</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon</groupId>
|
||||
<artifactId>org.wso2.carbon.core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon</groupId>
|
||||
<artifactId>org.wso2.carbon.utils</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.velocity</groupId>
|
||||
<artifactId>velocity</artifactId>
|
||||
<version>1.7</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<excludes>
|
||||
<exclude>**/Abstract*</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-scr-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
|
||||
<Bundle-Name>${project.artifactId}</Bundle-Name>
|
||||
<Bundle-Version>${carbon.device.mgt.version}</Bundle-Version>
|
||||
<Bundle-Description>API Management Application Bundle</Bundle-Description>
|
||||
<Private-Package>org.wso2.carbon.apimgt.application.extension.internal</Private-Package>
|
||||
<Import-Packages>
|
||||
io.entgra.device.mgt.core.apimgt.analytics.extension.dto,
|
||||
org.apache.velocity,
|
||||
org.apache.velocity.app,
|
||||
org.apache.velocity.context,
|
||||
org.wso2.carbon.utils;version="[4.6,5)"
|
||||
</Import-Packages>
|
||||
<Export-Package>
|
||||
io.entgra.device.mgt.core.apimgt.analytics.extension.*
|
||||
</Export-Package>
|
||||
<Embed-Dependency>
|
||||
scribe;scope=compile|runtime;inline=false;
|
||||
</Embed-Dependency>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.jacoco</groupId>
|
||||
<artifactId>jacoco-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>jacoco-initialize</id>
|
||||
<goals>
|
||||
<goal>prepare-agent</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>jacoco-site</id>
|
||||
<phase>test</phase>
|
||||
<goals>
|
||||
<goal>report</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile>
|
||||
<outputDirectory>${basedir}/target/coverage-reports/site</outputDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
@ -0,0 +1,176 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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 io.entgra.device.mgt.core.apimgt.analytics.extension;
|
||||
|
||||
import io.entgra.device.mgt.core.apimgt.analytics.extension.dto.EventPublisherData;
|
||||
import io.entgra.device.mgt.core.apimgt.analytics.extension.dto.EventReceiverData;
|
||||
import io.entgra.device.mgt.core.apimgt.analytics.extension.dto.EventStreamData;
|
||||
import io.entgra.device.mgt.core.apimgt.analytics.extension.dto.MetaData;
|
||||
import io.entgra.device.mgt.core.apimgt.analytics.extension.exception.EventPublisherDeployerException;
|
||||
import io.entgra.device.mgt.core.apimgt.analytics.extension.exception.EventReceiverDeployerException;
|
||||
import io.entgra.device.mgt.core.apimgt.analytics.extension.exception.EventStreamDeployerException;
|
||||
import org.apache.velocity.Template;
|
||||
import org.apache.velocity.VelocityContext;
|
||||
import org.apache.velocity.app.VelocityEngine;
|
||||
|
||||
import org.apache.velocity.runtime.RuntimeConstants;
|
||||
import org.wso2.carbon.utils.CarbonUtils;
|
||||
import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
public class AnalyticsArtifactsDeployer {
|
||||
|
||||
public static final String TEMPLATE_LOCATION = "repository" + File.separator + "resources" + File.separator + "iot-analytics-templates";
|
||||
public static final String EVENT_STREAM_LOCATION = "eventstreams";
|
||||
public static final String EVENT_PUBLISHER_LOCATION = "eventpublishers";
|
||||
public static final String EVENT_RECEIVER_LOCATION = "eventreceivers";
|
||||
public static final String EVENT_STREAM_TEMPLATE = TEMPLATE_LOCATION + File.separator + "event_stream.json.template";
|
||||
public static final String EVENT_PUBLISHER_TEMPLATE = TEMPLATE_LOCATION + File.separator + "event_publisher.xml.template";
|
||||
public static final String EVENT_RECEIVER_TEMPLATE = TEMPLATE_LOCATION + File.separator + "event_receiver.xml.template";
|
||||
|
||||
|
||||
public void deployEventStream(EventStreamData eventStreamData, int tenantId) throws EventStreamDeployerException {
|
||||
try {
|
||||
VelocityEngine ve = new VelocityEngine();
|
||||
ve.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, CarbonUtils.getCarbonHome());
|
||||
ve.init();
|
||||
Template template = ve.getTemplate(EVENT_STREAM_TEMPLATE);
|
||||
|
||||
VelocityContext context = populateContextForEventStreams(eventStreamData);
|
||||
StringWriter writer = new StringWriter();
|
||||
template.merge(context, writer);
|
||||
|
||||
String fileName = eventStreamData.getName() + "_" + eventStreamData.getVersion() + ".json";
|
||||
String fileLocation = null;
|
||||
if (MultitenantConstants.SUPER_TENANT_ID == tenantId) {
|
||||
fileLocation = CarbonUtils.getCarbonHome() + File.separator + "repository" + File.separator + "deployment"
|
||||
+ File.separator + "server" + File.separator + EVENT_STREAM_LOCATION + File.separator + fileName;
|
||||
} else {
|
||||
fileLocation = CarbonUtils.getCarbonTenantsDirPath() + File.separator + tenantId + File.separator
|
||||
+ EVENT_STREAM_LOCATION + File.separator + fileName;
|
||||
}
|
||||
|
||||
PrintWriter printWriter = new PrintWriter(fileLocation, "UTF-8");
|
||||
printWriter.println(writer.toString());
|
||||
printWriter.close();
|
||||
} catch (FileNotFoundException | UnsupportedEncodingException e) {
|
||||
throw new EventStreamDeployerException("Error while persisting event stream definition ", e);
|
||||
}
|
||||
}
|
||||
|
||||
public void deployEventPublisher(EventPublisherData eventPublisherData, int tenantId) throws EventPublisherDeployerException {
|
||||
try {
|
||||
VelocityEngine ve = new VelocityEngine();
|
||||
ve.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, CarbonUtils.getCarbonHome());
|
||||
ve.init();
|
||||
Template template = ve.getTemplate(EVENT_PUBLISHER_TEMPLATE);
|
||||
|
||||
VelocityContext context = populateContextForEventPublisher(eventPublisherData);
|
||||
StringWriter writer = new StringWriter();
|
||||
template.merge(context, writer);
|
||||
|
||||
String fileName = eventPublisherData.getName() + ".xml";
|
||||
String fileLocation = null;
|
||||
if (MultitenantConstants.SUPER_TENANT_ID == tenantId) {
|
||||
fileLocation = CarbonUtils.getCarbonHome() + File.separator + "repository" + File.separator + "deployment"
|
||||
+ File.separator + "server" + File.separator + EVENT_PUBLISHER_LOCATION + File.separator + fileName;
|
||||
} else {
|
||||
fileLocation = CarbonUtils.getCarbonTenantsDirPath() + File.separator + tenantId + File.separator
|
||||
+ EVENT_PUBLISHER_LOCATION + File.separator + fileName;
|
||||
}
|
||||
|
||||
PrintWriter printWriter = new PrintWriter(fileLocation, "UTF-8");
|
||||
printWriter.println(writer.toString());
|
||||
printWriter.close();
|
||||
} catch (FileNotFoundException | UnsupportedEncodingException e) {
|
||||
throw new EventPublisherDeployerException("Error while persisting rdbms event publisher ", e);
|
||||
}
|
||||
}
|
||||
|
||||
public void deployEventReceiver(EventReceiverData eventReceiverData, int tenantId) throws EventReceiverDeployerException {
|
||||
try {
|
||||
VelocityEngine ve = new VelocityEngine();
|
||||
ve.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, CarbonUtils.getCarbonHome());
|
||||
ve.init();
|
||||
Template template = ve.getTemplate(EVENT_RECEIVER_TEMPLATE);
|
||||
|
||||
VelocityContext context = populateContextForEventReceiver(eventReceiverData);
|
||||
StringWriter writer = new StringWriter();
|
||||
template.merge(context, writer);
|
||||
|
||||
String fileName = eventReceiverData.getName() + ".xml";
|
||||
String fileLocation = null;
|
||||
if (MultitenantConstants.SUPER_TENANT_ID == tenantId) {
|
||||
fileLocation = CarbonUtils.getCarbonHome() + File.separator + "repository" + File.separator + "deployment"
|
||||
+ File.separator + "server" + File.separator + EVENT_RECEIVER_LOCATION + File.separator + fileName;
|
||||
} else {
|
||||
fileLocation = CarbonUtils.getCarbonTenantsDirPath() + File.separator + tenantId + File.separator
|
||||
+ EVENT_RECEIVER_LOCATION + File.separator + fileName;
|
||||
}
|
||||
|
||||
PrintWriter printWriter = new PrintWriter(fileLocation, "UTF-8");
|
||||
printWriter.println(writer.toString());
|
||||
printWriter.close();
|
||||
} catch (FileNotFoundException | UnsupportedEncodingException e) {
|
||||
throw new EventReceiverDeployerException("Error while persisting oauth mqtt event receiver ", e);
|
||||
}
|
||||
}
|
||||
|
||||
private VelocityContext populateContextForEventStreams(EventStreamData eventStreamData) {
|
||||
VelocityContext context = new VelocityContext();
|
||||
context.put("name", eventStreamData.getName());
|
||||
context.put("version", eventStreamData.getVersion());
|
||||
context.put("metaData",
|
||||
eventStreamData.getMetaData() != null ? eventStreamData.getMetaData() : new MetaData("deviceId", "STRING"));
|
||||
if (eventStreamData.getPayloadData() != null) {
|
||||
context.put("properties", eventStreamData.getPayloadData());
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
private VelocityContext populateContextForEventPublisher(EventPublisherData eventPublisherData) {
|
||||
VelocityContext context = new VelocityContext();
|
||||
|
||||
context.put("name", eventPublisherData.getName());
|
||||
context.put("streamName", eventPublisherData.getStreamName());
|
||||
context.put("streamVersion", eventPublisherData.getStreamVersion());
|
||||
context.put("properties", eventPublisherData.getPropertyList());
|
||||
context.put("eventAdapterType", eventPublisherData.getEventAdaptorType());
|
||||
context.put("customMappingType", eventPublisherData.getCustomMappingType());
|
||||
|
||||
return context;
|
||||
}
|
||||
|
||||
private VelocityContext populateContextForEventReceiver(EventReceiverData eventReceiverData) {
|
||||
VelocityContext context = new VelocityContext();
|
||||
|
||||
context.put("name", eventReceiverData.getName());
|
||||
context.put("streamName", eventReceiverData.getStreamName());
|
||||
context.put("streamVersion", eventReceiverData.getStreamVersion());
|
||||
context.put("properties", eventReceiverData.getPropertyList());
|
||||
context.put("eventAdapterType", eventReceiverData.getEventAdapterType());
|
||||
context.put("customMappingType", eventReceiverData.getCustomMappingType());
|
||||
|
||||
return context;
|
||||
}
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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 io.entgra.device.mgt.core.apimgt.analytics.extension.dto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class EventPublisherData {
|
||||
private String name;
|
||||
private String streamVersion;
|
||||
private String streamName;
|
||||
|
||||
private List<Property> propertyList;
|
||||
|
||||
private String eventAdaptorType;
|
||||
|
||||
private String customMappingType;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getStreamVersion() {
|
||||
return streamVersion;
|
||||
}
|
||||
|
||||
public void setStreamVersion(String streamVersion) {
|
||||
this.streamVersion = streamVersion;
|
||||
}
|
||||
|
||||
public String getStreamName() {
|
||||
return streamName;
|
||||
}
|
||||
|
||||
public void setStreamName(String streamName) {
|
||||
this.streamName = streamName;
|
||||
}
|
||||
|
||||
public List<Property> getPropertyList() {
|
||||
return propertyList;
|
||||
}
|
||||
|
||||
public void setPropertyList(List<Property> propertyList) {
|
||||
this.propertyList = propertyList;
|
||||
}
|
||||
|
||||
public String getEventAdaptorType() {
|
||||
return eventAdaptorType;
|
||||
}
|
||||
|
||||
public void setEventAdaptorType(String eventAdaptorType) {
|
||||
this.eventAdaptorType = eventAdaptorType;
|
||||
}
|
||||
|
||||
public String getCustomMappingType() {
|
||||
return customMappingType;
|
||||
}
|
||||
|
||||
public void setCustomMappingType(String customMappingType) {
|
||||
this.customMappingType = customMappingType;
|
||||
}
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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 io.entgra.device.mgt.core.apimgt.analytics.extension.dto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class EventReceiverData {
|
||||
|
||||
private String name;
|
||||
private String streamVersion;
|
||||
private String streamName;
|
||||
|
||||
private String eventAdapterType;
|
||||
|
||||
List<Property> propertyList;
|
||||
|
||||
private String customMappingType;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getStreamVersion() {
|
||||
return streamVersion;
|
||||
}
|
||||
|
||||
public void setStreamVersion(String streamVersion) {
|
||||
this.streamVersion = streamVersion;
|
||||
}
|
||||
|
||||
public String getStreamName() {
|
||||
return streamName;
|
||||
}
|
||||
|
||||
public void setStreamName(String streamName) {
|
||||
this.streamName = streamName;
|
||||
}
|
||||
|
||||
public String getEventAdapterType() {
|
||||
return eventAdapterType;
|
||||
}
|
||||
|
||||
public void setEventAdapterType(String eventAdapterType) {
|
||||
this.eventAdapterType = eventAdapterType;
|
||||
}
|
||||
|
||||
public List<Property> getPropertyList() {
|
||||
return propertyList;
|
||||
}
|
||||
|
||||
public void setPropertyList(List<Property> propertyList) {
|
||||
this.propertyList = propertyList;
|
||||
}
|
||||
|
||||
public String getCustomMappingType() {
|
||||
return customMappingType;
|
||||
}
|
||||
|
||||
public void setCustomMappingType(String customMappingType) {
|
||||
this.customMappingType = customMappingType;
|
||||
}
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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 io.entgra.device.mgt.core.apimgt.analytics.extension.dto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class EventStreamData {
|
||||
private String name;
|
||||
private String version;
|
||||
private MetaData metaData;
|
||||
private List<Property> payloadData;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(String version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public MetaData getMetaData() {
|
||||
return metaData;
|
||||
}
|
||||
|
||||
public void setMetaData(MetaData metaData) {
|
||||
this.metaData = metaData;
|
||||
}
|
||||
|
||||
public List<Property> getPayloadData() {
|
||||
return payloadData;
|
||||
}
|
||||
|
||||
public void setPayloadData(List<Property> payloadData) {
|
||||
this.payloadData = payloadData;
|
||||
}
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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 io.entgra.device.mgt.core.apimgt.analytics.extension.dto;
|
||||
|
||||
public class MetaData {
|
||||
String name;
|
||||
String type;
|
||||
|
||||
public MetaData(String name, String type){
|
||||
this.setName(name);
|
||||
this.setType(type);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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 io.entgra.device.mgt.core.apimgt.analytics.extension.dto;
|
||||
|
||||
public class Property {
|
||||
String name;
|
||||
String value;
|
||||
|
||||
public Property(String name, String value){
|
||||
this.setName(name);
|
||||
this.setValue(value);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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 io.entgra.device.mgt.core.apimgt.analytics.extension.exception;
|
||||
|
||||
public class EventPublisherDeployerException extends Exception {
|
||||
|
||||
private static final long serialVersionUID = -3151279311929070299L;
|
||||
|
||||
public EventPublisherDeployerException(String msg, Exception nestedEx) {
|
||||
super(msg, nestedEx);
|
||||
}
|
||||
|
||||
public EventPublisherDeployerException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
public EventPublisherDeployerException(String msg) {
|
||||
super(msg);
|
||||
}
|
||||
|
||||
public EventPublisherDeployerException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public EventPublisherDeployerException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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 io.entgra.device.mgt.core.apimgt.analytics.extension.exception;
|
||||
|
||||
public class EventReceiverDeployerException extends Exception {
|
||||
|
||||
private static final long serialVersionUID = -3151279311929070299L;
|
||||
|
||||
public EventReceiverDeployerException(String msg, Exception nestedEx) {
|
||||
super(msg, nestedEx);
|
||||
}
|
||||
|
||||
public EventReceiverDeployerException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
public EventReceiverDeployerException(String msg) {
|
||||
super(msg);
|
||||
}
|
||||
|
||||
public EventReceiverDeployerException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public EventReceiverDeployerException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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 io.entgra.device.mgt.core.apimgt.analytics.extension.exception;
|
||||
|
||||
public class EventStreamDeployerException extends Exception {
|
||||
|
||||
private static final long serialVersionUID = -3151279311929070298L;
|
||||
|
||||
public EventStreamDeployerException(String msg, Exception nestedEx) {
|
||||
super(msg, nestedEx);
|
||||
}
|
||||
|
||||
public EventStreamDeployerException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
public EventStreamDeployerException(String msg) {
|
||||
super(msg);
|
||||
}
|
||||
|
||||
public EventStreamDeployerException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public EventStreamDeployerException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package org.wso2.carbon.device.mgt.core.config.enrollment.guide;
|
||||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
@XmlRootElement(name = "EnrollmentGuideConfiguration")
|
||||
public class EnrollmentGuideConfiguration {
|
||||
|
||||
private boolean isEnabled;
|
||||
private String mail;
|
||||
|
||||
@XmlElement(name = "Enable", required = true)
|
||||
public boolean isEnabled() {
|
||||
return isEnabled;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
isEnabled = enabled;
|
||||
}
|
||||
|
||||
@XmlElement(name = "Mail", required = true)
|
||||
public String getMail() {
|
||||
return mail;
|
||||
}
|
||||
|
||||
public void setMail(String mail) {
|
||||
this.mail = mail;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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.core.config.ui;
|
||||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
|
||||
public class HubspotChat {
|
||||
private boolean isEnableHubspot;
|
||||
private String trackingUrl;
|
||||
private String accessToken;
|
||||
private String senderActorId;
|
||||
|
||||
@XmlElement(name = "EnableHubspot")
|
||||
public boolean isEnableHubspot() {
|
||||
return isEnableHubspot;
|
||||
}
|
||||
|
||||
public void setEnableHubspot(boolean enableHubspot) {
|
||||
isEnableHubspot = enableHubspot;
|
||||
}
|
||||
|
||||
@XmlElement(name = "TrackingUrl")
|
||||
public String getTrackingUrl() {
|
||||
return trackingUrl;
|
||||
}
|
||||
|
||||
public void setTrackingUrl(String trackingUrl) {
|
||||
this.trackingUrl = trackingUrl;
|
||||
}
|
||||
|
||||
@XmlElement(name = "AccessToken")
|
||||
public String getAccessToken() {
|
||||
return accessToken;
|
||||
}
|
||||
|
||||
public void setAccessToken(String accessToken) {
|
||||
this.accessToken = accessToken;
|
||||
}
|
||||
@XmlElement(name = "SenderActorId")
|
||||
public String getSenderActorId() {
|
||||
return senderActorId;
|
||||
}
|
||||
|
||||
public void setSenderActorId(String senderActorId) {
|
||||
this.senderActorId = senderActorId;
|
||||
}
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2023, 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.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>logger</artifactId>
|
||||
<version>5.0.21-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>io.entgra.notification.logger</artifactId>
|
||||
<name>Entgra - Notification Logger</name>
|
||||
<packaging>bundle</packaging>
|
||||
<url>http://entgra.io</url>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon</groupId>
|
||||
<artifactId>org.wso2.carbon.logging</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.testng</groupId>
|
||||
<artifactId>testng</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>io.entgra.device.mgt.extensions.logger</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
|
||||
<Bundle-Name>${project.artifactId}</Bundle-Name>
|
||||
<Bundle-Version>${carbon.device.mgt.version}</Bundle-Version>
|
||||
<Bundle-Description>Device Notification Logger Bundle</Bundle-Description>
|
||||
<Import-Package>
|
||||
io.entgra.device.mgt.extensions.logger.*,
|
||||
org.apache.commons.logging;version="[1.2,2)",
|
||||
org.apache.log4j;version="[1.2,2)",
|
||||
org.wso2.carbon.context;version="[4.4,5)
|
||||
</Import-Package>
|
||||
<Export-Package>
|
||||
io.entgra.notification.logger.*
|
||||
</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
@ -0,0 +1,103 @@
|
||||
/*
|
||||
* Copyright (c) 2023, 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 io.entgra.notification.logger;
|
||||
|
||||
import io.entgra.device.mgt.extensions.logger.LogContext;
|
||||
|
||||
public class DeviceLogContext extends LogContext {
|
||||
private final String deviceName;
|
||||
private final String operationCode;
|
||||
private final String deviceType;
|
||||
private final String tenantID;
|
||||
|
||||
private DeviceLogContext(Builder builder) {
|
||||
this.operationCode = builder.operationCode;
|
||||
this.deviceName = builder.deviceName;
|
||||
this.deviceType = builder.deviceType;
|
||||
this.tenantID = builder.tenantID;
|
||||
}
|
||||
|
||||
public String getTenantID() {
|
||||
return tenantID;
|
||||
}
|
||||
|
||||
public String getDeviceName() {
|
||||
return deviceName;
|
||||
}
|
||||
|
||||
public String getOperationCode() {
|
||||
return operationCode;
|
||||
}
|
||||
|
||||
public String getDeviceType() {
|
||||
return deviceType;
|
||||
}
|
||||
|
||||
|
||||
public static class Builder {
|
||||
private String deviceName;
|
||||
private String operationCode;
|
||||
private String deviceType;
|
||||
private String tenantID;
|
||||
|
||||
public Builder() {
|
||||
}
|
||||
|
||||
public String getDeviceType() {
|
||||
return deviceType;
|
||||
}
|
||||
|
||||
public Builder setDeviceType(String deviceType) {
|
||||
this.deviceType = deviceType;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTenantID() {
|
||||
return tenantID;
|
||||
}
|
||||
|
||||
public Builder setTenantID(String tenantID) {
|
||||
this.tenantID = tenantID;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDeviceName() {
|
||||
return deviceName;
|
||||
}
|
||||
|
||||
public Builder setDeviceName(String deviceName) {
|
||||
this.deviceName = deviceName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getOperationCode() {
|
||||
return operationCode;
|
||||
}
|
||||
|
||||
public Builder setOperationCode(String operationCode) {
|
||||
this.operationCode = operationCode;
|
||||
return this;
|
||||
}
|
||||
|
||||
public DeviceLogContext build() {
|
||||
return new DeviceLogContext(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,103 @@
|
||||
/*
|
||||
* Copyright (c) 2023, 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 io.entgra.notification.logger;
|
||||
|
||||
import io.entgra.device.mgt.extensions.logger.LogContext;
|
||||
|
||||
public class UserLogContext extends LogContext {
|
||||
private final String userName;
|
||||
private final String userEmail;
|
||||
private final String metaInfo;
|
||||
private final String tenantID;
|
||||
|
||||
private UserLogContext(Builder builder) {
|
||||
this.userEmail = builder.userEmail;
|
||||
this.userName = builder.userName;
|
||||
this.metaInfo = builder.metaInfo;
|
||||
this.tenantID = builder.tenantID;
|
||||
}
|
||||
|
||||
public String getTenantID() {
|
||||
return tenantID;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public String getUserEmail() {
|
||||
return userEmail;
|
||||
}
|
||||
|
||||
public String getMetaInfo() {
|
||||
return metaInfo;
|
||||
}
|
||||
|
||||
|
||||
public static class Builder {
|
||||
private String userName;
|
||||
private String userEmail;
|
||||
private String metaInfo;
|
||||
private String tenantID;
|
||||
|
||||
public Builder() {
|
||||
}
|
||||
|
||||
public String getMetaInfo() {
|
||||
return metaInfo;
|
||||
}
|
||||
|
||||
public Builder setMetaInfo(String metaInfo) {
|
||||
this.metaInfo = metaInfo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTenantID() {
|
||||
return tenantID;
|
||||
}
|
||||
|
||||
public Builder setTenantID(String tenantID) {
|
||||
this.tenantID = tenantID;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public Builder setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUserEmail() {
|
||||
return userEmail;
|
||||
}
|
||||
|
||||
public Builder setUserEmail(String userEmail) {
|
||||
this.userEmail = userEmail;
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserLogContext build() {
|
||||
return new UserLogContext(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,294 @@
|
||||
/*
|
||||
* Copyright (c) 2023, 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 io.entgra.notification.logger.impl;
|
||||
|
||||
|
||||
import io.entgra.device.mgt.extensions.logger.LogContext;
|
||||
import io.entgra.device.mgt.extensions.logger.spi.EntgraLogger;
|
||||
import io.entgra.notification.logger.DeviceLogContext;
|
||||
import io.entgra.notification.logger.util.MDCContextUtil;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.log4j.MDC;
|
||||
|
||||
|
||||
public class EntgraDeviceLoggerImpl implements EntgraLogger {
|
||||
|
||||
private static Log log = null;
|
||||
|
||||
public EntgraDeviceLoggerImpl(Class<?> clazz) {
|
||||
log = LogFactory.getLog(clazz);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(Object object, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(Object object, Throwable t, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(Object object, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(Object object, Throwable t, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(Object object, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(Object object, Throwable t, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fatal(Object object, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fatal(Object object, Throwable t, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(Object object, LogContext logContext) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(Object object, Throwable t, LogContext logContext) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(Object object, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(Object object, Throwable t, LogContext logContext) {
|
||||
}
|
||||
|
||||
public void info(String message) {
|
||||
}
|
||||
|
||||
public void info(String message, Throwable t) {
|
||||
log.info(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(String message, LogContext logContext) {
|
||||
DeviceLogContext deviceLogContext = (DeviceLogContext) logContext;
|
||||
MDCContextUtil.populateDeviceMDCContext(deviceLogContext);
|
||||
log.info(message);
|
||||
}
|
||||
|
||||
|
||||
public void debug(String message) {
|
||||
log.debug(message);
|
||||
}
|
||||
|
||||
|
||||
public void debug(String message, Throwable t) {
|
||||
log.debug(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(String message, LogContext logContext) {
|
||||
DeviceLogContext deviceLogContext = (DeviceLogContext) logContext;
|
||||
MDCContextUtil.populateDeviceMDCContext(deviceLogContext);
|
||||
log.debug(message);
|
||||
}
|
||||
|
||||
public void error(String message) {
|
||||
log.error(message);
|
||||
}
|
||||
|
||||
|
||||
public void error(String message, Throwable t) {
|
||||
log.error(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String message, LogContext logContext) {
|
||||
DeviceLogContext deviceLogContext = (DeviceLogContext) logContext;
|
||||
MDCContextUtil.populateDeviceMDCContext(deviceLogContext);
|
||||
log.error(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String message, Throwable t, LogContext logContext) {
|
||||
DeviceLogContext deviceLogContext = (DeviceLogContext) logContext;
|
||||
MDCContextUtil.populateDeviceMDCContext(deviceLogContext);
|
||||
log.error(message, t);
|
||||
}
|
||||
|
||||
|
||||
public void warn(String message) {
|
||||
log.warn(message);
|
||||
}
|
||||
|
||||
|
||||
public void warn(String message, Throwable t) {
|
||||
log.warn(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(String message, LogContext logContext) {
|
||||
DeviceLogContext deviceLogContext = (DeviceLogContext) logContext;
|
||||
MDCContextUtil.populateDeviceMDCContext(deviceLogContext);
|
||||
log.warn(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(String message, Throwable t, LogContext logContext) {
|
||||
DeviceLogContext deviceLogContext = (DeviceLogContext) logContext;
|
||||
MDCContextUtil.populateDeviceMDCContext(deviceLogContext);
|
||||
log.warn(message, t);
|
||||
}
|
||||
|
||||
|
||||
public void trace(String message) {
|
||||
log.trace(message);
|
||||
}
|
||||
|
||||
|
||||
public void trace(String message, Throwable t) {
|
||||
log.trace(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(String message, LogContext logContext) {
|
||||
DeviceLogContext deviceLogContext = (DeviceLogContext) logContext;
|
||||
MDCContextUtil.populateDeviceMDCContext(deviceLogContext);
|
||||
log.trace(message);
|
||||
}
|
||||
|
||||
|
||||
public void fatal(String message) {
|
||||
log.fatal(message);
|
||||
}
|
||||
|
||||
|
||||
public void fatal(String message, Throwable t) {
|
||||
log.fatal(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fatal(String message, LogContext logContext) {
|
||||
DeviceLogContext deviceLogContext = (DeviceLogContext) logContext;
|
||||
MDCContextUtil.populateDeviceMDCContext(deviceLogContext);
|
||||
log.fatal(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(Object o) {
|
||||
log.debug(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(Object o, Throwable throwable) {
|
||||
log.debug(o, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(Object o) {
|
||||
log.error(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(Object o, Throwable throwable) {
|
||||
log.error(o, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fatal(Object o) {
|
||||
log.fatal(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fatal(Object o, Throwable throwable) {
|
||||
log.fatal(0, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(Object o) {
|
||||
log.info(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(Object o, Throwable throwable) {
|
||||
log.info(o, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDebugEnabled() {
|
||||
return log.isDebugEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isErrorEnabled() {
|
||||
return log.isErrorEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFatalEnabled() {
|
||||
return log.isFatalEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInfoEnabled() {
|
||||
return log.isInfoEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTraceEnabled() {
|
||||
return log.isTraceEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isWarnEnabled() {
|
||||
return log.isWarnEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(Object o) {
|
||||
log.trace(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(Object o, Throwable throwable) {
|
||||
log.trace(o, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(Object o) {
|
||||
log.warn(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(Object o, Throwable throwable) {
|
||||
log.warn(o, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearLogContext() {
|
||||
MDC.clear();
|
||||
}
|
||||
}
|
@ -0,0 +1,294 @@
|
||||
/*
|
||||
* Copyright (c) 2023, 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 io.entgra.notification.logger.impl;
|
||||
|
||||
|
||||
import io.entgra.device.mgt.extensions.logger.LogContext;
|
||||
import io.entgra.device.mgt.extensions.logger.spi.EntgraLogger;
|
||||
import io.entgra.notification.logger.UserLogContext;
|
||||
import io.entgra.notification.logger.util.MDCContextUtil;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.log4j.MDC;
|
||||
|
||||
|
||||
public class EntgraUserLoggerImpl implements EntgraLogger {
|
||||
|
||||
private static Log log = null;
|
||||
|
||||
public EntgraUserLoggerImpl(Class<?> clazz) {
|
||||
log = LogFactory.getLog(clazz);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(Object object, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(Object object, Throwable t, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(Object object, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(Object object, Throwable t, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(Object object, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(Object object, Throwable t, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fatal(Object object, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fatal(Object object, Throwable t, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(Object object, LogContext logContext) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(Object object, Throwable t, LogContext logContext) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(Object object, LogContext logContext) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(Object object, Throwable t, LogContext logContext) {
|
||||
}
|
||||
|
||||
public void info(String message) {
|
||||
}
|
||||
|
||||
public void info(String message, Throwable t) {
|
||||
log.info(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(String message, LogContext logContext) {
|
||||
UserLogContext userLogContext = (UserLogContext) logContext;
|
||||
MDCContextUtil.populateUserMDCContext(userLogContext);
|
||||
log.info(message);
|
||||
}
|
||||
|
||||
|
||||
public void debug(String message) {
|
||||
log.debug(message);
|
||||
}
|
||||
|
||||
|
||||
public void debug(String message, Throwable t) {
|
||||
log.debug(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(String message, LogContext logContext) {
|
||||
UserLogContext userLogContext = (UserLogContext) logContext;
|
||||
MDCContextUtil.populateUserMDCContext(userLogContext);
|
||||
log.debug(message);
|
||||
}
|
||||
|
||||
public void error(String message) {
|
||||
log.error(message);
|
||||
}
|
||||
|
||||
|
||||
public void error(String message, Throwable t) {
|
||||
log.error(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String message, LogContext logContext) {
|
||||
UserLogContext userLogContext = (UserLogContext) logContext;
|
||||
MDCContextUtil.populateUserMDCContext(userLogContext);
|
||||
log.error(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String message, Throwable t, LogContext logContext) {
|
||||
UserLogContext userLogContext = (UserLogContext) logContext;
|
||||
MDCContextUtil.populateUserMDCContext(userLogContext);
|
||||
log.error(message, t);
|
||||
}
|
||||
|
||||
|
||||
public void warn(String message) {
|
||||
log.warn(message);
|
||||
}
|
||||
|
||||
|
||||
public void warn(String message, Throwable t) {
|
||||
log.warn(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(String message, LogContext logContext) {
|
||||
UserLogContext userLogContext = (UserLogContext) logContext;
|
||||
MDCContextUtil.populateUserMDCContext(userLogContext);
|
||||
log.warn(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(String message, Throwable t, LogContext logContext) {
|
||||
UserLogContext userLogContext = (UserLogContext) logContext;
|
||||
MDCContextUtil.populateUserMDCContext(userLogContext);
|
||||
log.warn(message, t);
|
||||
}
|
||||
|
||||
|
||||
public void trace(String message) {
|
||||
log.trace(message);
|
||||
}
|
||||
|
||||
|
||||
public void trace(String message, Throwable t) {
|
||||
log.trace(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(String message, LogContext logContext) {
|
||||
UserLogContext userLogContext = (UserLogContext) logContext;
|
||||
MDCContextUtil.populateUserMDCContext(userLogContext);
|
||||
log.trace(message);
|
||||
}
|
||||
|
||||
|
||||
public void fatal(String message) {
|
||||
log.fatal(message);
|
||||
}
|
||||
|
||||
|
||||
public void fatal(String message, Throwable t) {
|
||||
log.fatal(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fatal(String message, LogContext logContext) {
|
||||
UserLogContext userLogContext = (UserLogContext) logContext;
|
||||
MDCContextUtil.populateUserMDCContext(userLogContext);
|
||||
log.fatal(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(Object o) {
|
||||
log.debug(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(Object o, Throwable throwable) {
|
||||
log.debug(o, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(Object o) {
|
||||
log.error(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(Object o, Throwable throwable) {
|
||||
log.error(o, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fatal(Object o) {
|
||||
log.fatal(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fatal(Object o, Throwable throwable) {
|
||||
log.fatal(0, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(Object o) {
|
||||
log.info(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(Object o, Throwable throwable) {
|
||||
log.info(o, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDebugEnabled() {
|
||||
return log.isDebugEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isErrorEnabled() {
|
||||
return log.isErrorEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFatalEnabled() {
|
||||
return log.isFatalEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInfoEnabled() {
|
||||
return log.isInfoEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTraceEnabled() {
|
||||
return log.isTraceEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isWarnEnabled() {
|
||||
return log.isWarnEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(Object o) {
|
||||
log.trace(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(Object o, Throwable throwable) {
|
||||
log.trace(o, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(Object o) {
|
||||
log.warn(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(Object o, Throwable throwable) {
|
||||
log.warn(o, throwable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearLogContext() {
|
||||
MDC.clear();
|
||||
}
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright (c) 2023, 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 io.entgra.notification.logger.util;
|
||||
|
||||
import io.entgra.notification.logger.DeviceLogContext;
|
||||
import io.entgra.notification.logger.UserLogContext;
|
||||
import org.apache.log4j.MDC;
|
||||
|
||||
public final class MDCContextUtil {
|
||||
|
||||
public static void populateDeviceMDCContext(final DeviceLogContext mdcContext) {
|
||||
if (mdcContext.getDeviceName() != null) {
|
||||
MDC.put("DeviceName", mdcContext.getDeviceName());
|
||||
}
|
||||
if (mdcContext.getDeviceType() != null) {
|
||||
MDC.put("DeviceType", mdcContext.getDeviceType());
|
||||
}
|
||||
if (mdcContext.getOperationCode() != null) {
|
||||
MDC.put("OperationCode", mdcContext.getOperationCode());
|
||||
}
|
||||
if (mdcContext.getTenantID() != null) {
|
||||
MDC.put("TenantId", mdcContext.getTenantID());
|
||||
}
|
||||
}
|
||||
|
||||
public static void populateUserMDCContext(final UserLogContext mdcContext) {
|
||||
if (mdcContext.getUserName() != null) {
|
||||
MDC.put("UserName", mdcContext.getUserName());
|
||||
}
|
||||
if (mdcContext.getUserEmail() != null) {
|
||||
MDC.put("UserEmail", mdcContext.getUserEmail());
|
||||
}
|
||||
if (mdcContext.getMetaInfo() != null) {
|
||||
MDC.put("MetaInfo", mdcContext.getMetaInfo());
|
||||
}
|
||||
if (mdcContext.getTenantID() != null) {
|
||||
MDC.put("TenantId", mdcContext.getTenantID());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,32 @@
|
||||
#
|
||||
# Copyright 2023 Entgra Pvt. Ltd.. (http://entgra.io)
|
||||
#
|
||||
# Licensed 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.
|
||||
#
|
||||
|
||||
#
|
||||
# This is the log4j configuration file used by Entgra Pvt. Ltd.
|
||||
#
|
||||
# IMPORTANT : Please do not remove or change the names of any
|
||||
# of the Appenders defined here. The layout pattern & log file
|
||||
# can be changed using the WSO2 Carbon Management Console, and those
|
||||
# settings will override the settings in this file.
|
||||
#
|
||||
|
||||
log4j.rootLogger=DEBUG, STD_OUT
|
||||
|
||||
# Redirect log messages to console
|
||||
log4j.appender.STD_OUT=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.STD_OUT.Target=System.out
|
||||
log4j.appender.STD_OUT.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.STD_OUT.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
|
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2023, 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.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<version>5.0.21-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>logger</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>Entgra - Notification Logger Component</name>
|
||||
<url>http://entgra.io</url>
|
||||
|
||||
<modules>
|
||||
<module>io.entgra.notification.logger</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
</project>
|
@ -0,0 +1,120 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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 io.entgra.ui.request.interceptor;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import io.entgra.ui.request.interceptor.beans.ProxyResponse;
|
||||
import io.entgra.ui.request.interceptor.util.HandlerConstants;
|
||||
import io.entgra.ui.request.interceptor.util.HandlerUtil;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.http.HttpHeaders;
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
|
||||
import javax.servlet.annotation.MultipartConfig;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.io.IOException;
|
||||
|
||||
@MultipartConfig
|
||||
@WebServlet(
|
||||
name = "HubspotRequestHandlerServlet",
|
||||
description = "",
|
||||
urlPatterns = {
|
||||
"/hubspot/*"
|
||||
}
|
||||
)
|
||||
public class HubspotHandler extends HttpServlet {
|
||||
|
||||
private static final Log log = LogFactory.getLog(HubspotHandler.class);
|
||||
private HttpSession httpSession;
|
||||
private static String hubspotEndpoint;
|
||||
private static String chatConfig;
|
||||
private JsonObject uiConfigJsonObject;
|
||||
private static String gatewayUrl;
|
||||
private static String iotsCoreUrl;
|
||||
|
||||
@Override
|
||||
protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
|
||||
try {
|
||||
if (validateRequest(req, resp)) {
|
||||
HttpPost postRequest = new HttpPost(HandlerUtil.generateBackendRequestURL(req, hubspotEndpoint));
|
||||
HandlerUtil.generateChatRequestEntity(req, postRequest);
|
||||
postRequest.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
|
||||
postRequest.setHeader(HttpHeaders.AUTHORIZATION, HandlerConstants.BEARER + chatConfig);
|
||||
ProxyResponse proxyResponse = HandlerUtil.execute(postRequest);
|
||||
HandlerUtil.handleSuccess(resp, proxyResponse);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
log.error("Error occurred when processing POST request.", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
|
||||
try {
|
||||
if (validateRequest(req, resp)) {
|
||||
HttpGet getRequest = new HttpGet(HandlerUtil.generateBackendRequestURL(req,hubspotEndpoint));
|
||||
getRequest.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
|
||||
getRequest.setHeader(HttpHeaders.AUTHORIZATION, HandlerConstants.BEARER + chatConfig);
|
||||
ProxyResponse proxyResponse = HandlerUtil.execute(getRequest);
|
||||
HandlerUtil.handleSuccess(resp, proxyResponse);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
log.error("Error occurred when processing GET request.", e);
|
||||
}
|
||||
}
|
||||
|
||||
/***
|
||||
* Validates the hubspot's incoming request.
|
||||
*
|
||||
* @param req {@link HttpServletRequest}
|
||||
* @param resp {@link HttpServletResponse}
|
||||
* @return If request is a valid one, returns TRUE, otherwise return FALSE
|
||||
* @throws IOException If and error occurs while witting error response to client side
|
||||
*/
|
||||
private boolean validateRequest(HttpServletRequest req, HttpServletResponse resp)
|
||||
throws IOException {
|
||||
httpSession = req.getSession(false);
|
||||
if (httpSession == null) {
|
||||
log.error("Unauthorized, You are not logged in. Please log in to the portal");
|
||||
HandlerUtil.handleError(resp, HttpStatus.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
}
|
||||
if (req.getMethod() == null) {
|
||||
log.error("Bad Request, Request method is empty");
|
||||
HandlerUtil.handleError(resp, HttpStatus.SC_BAD_REQUEST);
|
||||
return false;
|
||||
}
|
||||
gatewayUrl = req.getScheme() + HandlerConstants.SCHEME_SEPARATOR + System.getProperty(HandlerConstants.IOT_GW_HOST_ENV_VAR)
|
||||
+ HandlerConstants.COLON + HandlerUtil.getGatewayPort(req.getScheme());
|
||||
iotsCoreUrl = req.getScheme() + HandlerConstants.SCHEME_SEPARATOR + System.getProperty(HandlerConstants.IOT_CORE_HOST_ENV_VAR)
|
||||
+ HandlerConstants.COLON + HandlerUtil.getCorePort(req.getScheme());
|
||||
String uiConfigUrl = iotsCoreUrl + HandlerConstants.UI_CONFIG_ENDPOINT;
|
||||
uiConfigJsonObject = HandlerUtil.getUIConfigAndPersistInSession(uiConfigUrl, gatewayUrl, httpSession, resp);
|
||||
chatConfig = uiConfigJsonObject.get("hubspotChat").getAsJsonObject().get("accessToken").getAsString();
|
||||
hubspotEndpoint = HandlerConstants.HTTPS_PROTOCOL + HandlerConstants.SCHEME_SEPARATOR + HandlerConstants.HUBSPOT_CHAT_URL;
|
||||
return true;
|
||||
}
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.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.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>apimgt-extensions-feature</artifactId>
|
||||
<version>5.0.21-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>io.entgra.device.mgt.core.apimgt.analytics.extension.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>Entgra - APIM Analytics Extension Feature</name>
|
||||
<url>http://entgra.io</url>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.apimgt.analytics.extension</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-resources</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>src/main/resources</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>resources</directory>
|
||||
<includes>
|
||||
<include>build.properties</include>
|
||||
<include>p2.inf</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.wso2.maven</groupId>
|
||||
<artifactId>carbon-p2-plugin</artifactId>
|
||||
<version>${carbon.p2.plugin.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>p2-feature-generation</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-feature-gen</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<id>io.entgra.device.mgt.core.apimgt.analytics.extension</id>
|
||||
<propertiesFile>../../../features/etc/feature.properties</propertiesFile>
|
||||
<adviceFile>
|
||||
<properties>
|
||||
<propertyDef>org.wso2.carbon.p2.category.type:server</propertyDef>
|
||||
<propertyDef>org.eclipse.equinox.p2.type.group:true</propertyDef>
|
||||
</properties>
|
||||
</adviceFile>
|
||||
<bundles>
|
||||
<bundleDef>
|
||||
org.wso2.carbon.devicemgt:io.entgra.device.mgt.core.apimgt.analytics.extension:${carbon.device.mgt.version}
|
||||
</bundleDef>
|
||||
</bundles>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
@ -0,0 +1 @@
|
||||
custom = true
|
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2023, Entgra (pvt) Ltd. (http://entgra.io)
|
||||
~
|
||||
~ All Rights Reserved.
|
||||
~
|
||||
~ Unauthorized copying of this file, via any medium is strictly prohibited.
|
||||
~ Proprietary and confidential.
|
||||
-->
|
||||
<eventPublisher name="${name}" processing="enable"
|
||||
statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventpublisher">
|
||||
<from streamName="${streamName}" version="${streamVersion}"/>
|
||||
<mapping customMapping="disable" type="${customMappingType}"/>
|
||||
<to eventAdapterType="${eventAdapterType}">
|
||||
#foreach( $property in $properties )
|
||||
<property name="${property.name}">${property.value}</property>
|
||||
#end
|
||||
</to>
|
||||
</eventPublisher>
|
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2023, Entgra (pvt) Ltd. (http://entgra.io)
|
||||
~
|
||||
~ All Rights Reserved.
|
||||
~
|
||||
~ Unauthorized copying of this file, via any medium is strictly prohibited.
|
||||
~ Proprietary and confidential.
|
||||
-->
|
||||
<eventReceiver name="${name}"
|
||||
statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventreceiver">
|
||||
<from eventAdapterType="${eventAdapterType}">
|
||||
#foreach( $property in $properties )
|
||||
<property name="${property.name}">${property.value}</property>
|
||||
#end
|
||||
</from>
|
||||
<mapping customMapping="disable" type="${customMappingType}"/>
|
||||
<to
|
||||
streamName="${streamName}" version="${streamVersion}"/>
|
||||
</eventReceiver>
|
@ -0,0 +1,26 @@
|
||||
{
|
||||
"streamId": "$name:$version",
|
||||
"name": "$name",
|
||||
"version": "$version",
|
||||
"nickName": "",
|
||||
"description": "",
|
||||
"metaData": [
|
||||
{
|
||||
"name": "${metaData.name}",
|
||||
"type": "${metaData.type}"
|
||||
}
|
||||
],
|
||||
"correlationData": [],
|
||||
"payloadData": [
|
||||
#foreach( $property in $properties )
|
||||
{
|
||||
"name": "${property.name}",
|
||||
"type": "${property.value}"
|
||||
},
|
||||
#end
|
||||
{
|
||||
"name": "ts",
|
||||
"type": "LONG"
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
instructions.configure = \
|
||||
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/resources/iot-analytics-templates);\
|
||||
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/io.entgra.device.mgt.core.apimgt.analytics.extension_${feature.version}/iot-analytics-templates/,target:${installFolder}/../../resources/iot-analytics-templates/,overwrite:true);\
|
@ -0,0 +1,116 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
~ Copyright (c) 2023, 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.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>logger-feature</artifactId>
|
||||
<version>5.0.21-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>io.entgra.notification.logger.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>Entgra - Notification logger</name>
|
||||
<url>http://entgra.io</url>
|
||||
<description>
|
||||
This feature bundles for the Entgra Notification logger
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon</groupId>
|
||||
<artifactId>org.wso2.carbon.logging</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.testng</groupId>
|
||||
<artifactId>testng</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>io.entgra.device.mgt.extensions.logger</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>io.entgra.notification.logger</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-resources</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>src/main/resources</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>resources</directory>
|
||||
<includes>
|
||||
<include>build.properties</include>
|
||||
<include>p2.inf</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.wso2.maven</groupId>
|
||||
<artifactId>carbon-p2-plugin</artifactId>
|
||||
<version>${carbon.p2.plugin.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>p2-feature-generation</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-feature-gen</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<id>io.entgra.notification.logger</id>
|
||||
<propertiesFile>../../../features/etc/feature.properties</propertiesFile>
|
||||
<adviceFile>
|
||||
<properties>
|
||||
<propertyDef>org.wso2.carbon.p2.category.type:server</propertyDef>
|
||||
<propertyDef>org.eclipse.equinox.p2.type.group:true</propertyDef>
|
||||
</properties>
|
||||
</adviceFile>
|
||||
<bundles>
|
||||
<bundleDef>
|
||||
org.wso2.carbon.devicemgt:io.entgra.notification.logger:${carbon.device.mgt.version}
|
||||
</bundleDef>
|
||||
</bundles>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
@ -0,0 +1,20 @@
|
||||
#
|
||||
# Copyright (C) 2018 - 2023 Entgra (Pvt) Ltd, Inc - All Rights Reserved.
|
||||
#
|
||||
# Unauthorised copying/redistribution of this file, via any medium is strictly prohibited.
|
||||
#
|
||||
# Licensed under the Entgra Commercial License, Version 1.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://entgra.io/licenses/entgra-commercial/1.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.
|
||||
#
|
||||
|
||||
custom = true
|
@ -0,0 +1 @@
|
||||
instructions.configure = \
|
@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
~ Copyright (c) 2023, 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.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>carbon-devicemgt</artifactId>
|
||||
<version>5.0.21-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>logger-feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>Entgra - Logger Feature</name>
|
||||
<url>http://entgra.io</url>
|
||||
|
||||
<modules>
|
||||
<module>io.entgra.notification.logger.feature</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
@ -0,0 +1,34 @@
|
||||
#*
|
||||
Copyright (c) 2023, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
|
||||
WSO2 Inc. 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.
|
||||
*#
|
||||
<EmailConfig>
|
||||
<Subject>$mail-subject</Subject>
|
||||
<Body>
|
||||
<![CDATA[
|
||||
<html>
|
||||
<head>
|
||||
<title>Enrollment Questions and Answers</title>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
$enrollment-guide
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
]]>
|
||||
</Body>
|
||||
</EmailConfig>
|
Loading…
Reference in new issue