diff --git a/modules/distribution/src/repository/conf/datasources/master-datasources.xml b/modules/distribution/src/repository/conf/datasources/master-datasources.xml
index 61c2e973..4fa29bfa 100755
--- a/modules/distribution/src/repository/conf/datasources/master-datasources.xml
+++ b/modules/distribution/src/repository/conf/datasources/master-datasources.xml
@@ -107,114 +107,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
JAGH2
The datasource used for by the Jaggery Storage Manager
- jdbc/test
-
-
-
- jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000
- sa
-
- org.h2.Driver
- 50
- 60000
-
-
-
-
-
-
- WSO2IOT_STATS_DB
-
- jdbc/WSO2IOT_STATS_DB
+ jdbc/ES_Storage
- The datasource used for analyzer data
- jdbc:h2:$/repository/database/IOT_STATS_DB;AUTO_SERVER=TRUE
-
+ jdbc:h2:repository/database/ES_STORAGE;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000
wso2carbon
wso2carbon
org.h2.Driver
50
60000
- true
- SELECT 1
- 30000
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/pom.xml b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/pom.xml
deleted file mode 100644
index acb81ddc..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/pom.xml
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
-
-
- das-extensions
- org.wso2.iot
- 1.0.0-SNAPSHOT
- ../pom.xml
-
- 4.0.0
-
- org.wso2.carbon.event.input.adapter.extensions
- bundle
- WSO2 Carbon - Event Input MQTT Adapter Module
- This provides the capability of connecting to existing broker that supports OAUTH
- http://wso2.org
-
-
-
- org.wso2.carbon.analytics-common
- org.wso2.carbon.event.input.adapter.core
-
-
- org.wso2.carbon
- org.wso2.carbon.logging
-
-
- org.wso2.carbon
- org.wso2.carbon.core
-
-
- org.eclipse.paho
- org.eclipse.paho.client.mqttv3
-
-
- org.apache.httpcomponents.wso2
- httpcore
-
-
- org.wso2.orbit.org.apache.httpcomponents
- httpclient
-
-
- com.googlecode.json-simple.wso2
- json-simple
-
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.identity.jwt.client.extension
-
-
- com.jayway.jsonpath
- json-path
-
-
- org.wso2.carbon.identity
- org.wso2.carbon.identity.oauth.stub
-
-
-
-
-
-
- org.apache.felix
- maven-scr-plugin
-
-
- generate-scr-descriptor
-
- scr
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- org.apache.felix
- maven-bundle-plugin
- true
-
-
- ${project.artifactId}
- ${project.artifactId}
-
- org.wso2.carbon.event.input.adapter.extensions.internal,
- org.wso2.carbon.event.input.adapter.extensions.internal.*
-
-
- !org.wso2.carbon.event.input.adapter.extensions.internal,
- !org.wso2.carbon.event.input.adapter.extensions.internal.*,
- org.wso2.carbon.event.input.adapter.extensions.*
-
-
- org.wso2.carbon.event.input.adapter.core,
- org.wso2.carbon.event.input.adapter.core.*,
- javax.xml.namespace; version=0.0.0,
- org.eclipse.paho.client.mqttv3.*,
- org.apache.http;version="${httpclient.version.range}",
- org.apache.http.message;version="${httpclient.version.range}",
- org.apache.http.client;version="${httpclient.version.range}",
- org.apache.http.impl;version="${httpclient.version.range}",
- org.apache.http.conn.*;version="${httpclient.version.range}",
- org.apache.http.util;version="${httpclient.version.range}",
- org.apache.http.client.entity;version="${httpclient.version.range}",
- org.apache.http.client.methods;version="${httpclient.version.range}",
- org.apache.http.impl.client;version="${httpclient.version.range}",
- org.json.simple.*,
- org.wso2.carbon.identity.jwt.client.extension.*,
- com.jayway.jsonpath.*,
- javax.net.ssl,
- org.apache.commons.logging,
- org.apache.http.entity,
- org.osgi.framework,
- org.osgi.service.component,
- org.wso2.carbon.context,
- org.wso2.carbon.core,
- javax.servlet,
- javax.servlet.http,
- org.apache.axiom.om.util,
- org.osgi.service.http,
- org.wso2.carbon.user.api,
- org.wso2.carbon.user.core.service,
- org.wso2.carbon.user.core.tenant,
- org.wso2.carbon.utils,
- org.wso2.carbon.utils.multitenancy,
- org.wso2.carbon.identity.oauth2.stub;version="${carbon.identity.version.range}",
- org.wso2.carbon.identity.oauth2.stub.dto;version="${carbon.identity.version.range}",
- org.apache.axis2,
- org.apache.axis2.client,
- org.apache.axis2.context,
- org.apache.axis2.transport.http,
- org.apache.commons.httpclient,
- org.apache.commons.httpclient.contrib.ssl,
- org.apache.commons.httpclient.params,
- org.apache.commons.httpclient.protocol,
- org.apache.commons.pool,
- org.apache.commons.pool.impl,
- org.apache.log4j,
- org.wso2.carbon.base,
- org.wso2.carbon.core.util
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/ContentInfo.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/ContentInfo.java
deleted file mode 100644
index 0cd60b99..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/ContentInfo.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 2016, 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.
-*/
-
-package org.wso2.carbon.event.input.adapter.extensions;
-
-/**
- * This is the return type of the ContentValidator.
- */
-public class ContentInfo {
- /**
- * true if the content is valid if not when false then content will not be published.
- */
- private boolean isValidContent;
- /**
- * msgText to be returned. eg: if the content is encrypted then we can decrypt the content and then validate and
- * return it.
- */
- private String msgText;
-
- public ContentInfo(boolean isValidContent, String msgText) {
- this.isValidContent = isValidContent;
- this.msgText = msgText;
- }
-
- public boolean isValidContent() {
- return isValidContent;
- }
-
- public void setIsValidContent(boolean isValidContent) {
- this.isValidContent = isValidContent;
- }
-
- public String getMsgText() {
- return msgText;
- }
-
- public void setMsgText(String msgText) {
- this.msgText = msgText;
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/ContentValidator.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/ContentValidator.java
deleted file mode 100644
index 3947c70e..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/ContentValidator.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2016, 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.
-*/
-
-package org.wso2.carbon.event.input.adapter.extensions;
-
-import java.util.Map;
-
-/**
- * This interface will be triggered to validate the stream content before publishing.
- */
-public interface ContentValidator {
- /**
- *
- * @param params that related to input adapter to identify the client and the content
- * @return
- */
- ContentInfo validate(String msgPayload, Map params);
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/HTTPEventAdapter.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/HTTPEventAdapter.java
deleted file mode 100644
index 1c8c7f33..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/HTTPEventAdapter.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * 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.
- */
-
-package org.wso2.carbon.event.input.adapter.extensions.http;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.osgi.service.http.HttpService;
-import org.osgi.service.http.NamespaceException;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapter;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapterConfiguration;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapterListener;
-import org.wso2.carbon.event.input.adapter.core.exception.InputEventAdapterException;
-import org.wso2.carbon.event.input.adapter.core.exception.InputEventAdapterRuntimeException;
-import org.wso2.carbon.event.input.adapter.core.exception.TestConnectionNotSupportedException;
-import org.wso2.carbon.event.input.adapter.extensions.http.util.HTTPEventAdapterConstants;
-import org.wso2.carbon.event.input.adapter.extensions.internal.EventAdapterServiceDataHolder;
-import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
-
-import javax.servlet.ServletException;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.RejectedExecutionHandler;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-
-public final class HTTPEventAdapter implements InputEventAdapter {
-
- private final InputEventAdapterConfiguration eventAdapterConfiguration;
- private final Map globalProperties;
- private InputEventAdapterListener eventAdaptorListener;
- private final String id = UUID.randomUUID().toString();
- public static ExecutorService executorService;
- private static final Log log = LogFactory.getLog(HTTPEventAdapter.class);
- private boolean isConnected = false;
-
- public HTTPEventAdapter(InputEventAdapterConfiguration eventAdapterConfiguration,
- Map globalProperties) {
- this.eventAdapterConfiguration = eventAdapterConfiguration;
- this.globalProperties = globalProperties;
- }
-
- @Override
- public void init(InputEventAdapterListener eventAdaptorListener) throws InputEventAdapterException {
- this.eventAdaptorListener = eventAdaptorListener;
-
- //ThreadPoolExecutor will be assigned if it is null
- if (executorService == null) {
- int minThread;
- int maxThread;
- long defaultKeepAliveTime;
- int jobQueueSize;
-
- //If global properties are available those will be assigned else constant values will be assigned
- if (globalProperties.get(HTTPEventAdapterConstants.ADAPTER_MIN_THREAD_POOL_SIZE_NAME) != null) {
- minThread = Integer
- .parseInt(globalProperties.get(HTTPEventAdapterConstants.ADAPTER_MIN_THREAD_POOL_SIZE_NAME));
- } else {
- minThread = HTTPEventAdapterConstants.ADAPTER_MIN_THREAD_POOL_SIZE;
- }
-
- if (globalProperties.get(HTTPEventAdapterConstants.ADAPTER_MAX_THREAD_POOL_SIZE_NAME) != null) {
- maxThread = Integer
- .parseInt(globalProperties.get(HTTPEventAdapterConstants.ADAPTER_MAX_THREAD_POOL_SIZE_NAME));
- } else {
- maxThread = HTTPEventAdapterConstants.ADAPTER_MAX_THREAD_POOL_SIZE;
- }
-
- if (globalProperties.get(HTTPEventAdapterConstants.ADAPTER_KEEP_ALIVE_TIME_NAME) != null) {
- defaultKeepAliveTime = Integer
- .parseInt(globalProperties.get(HTTPEventAdapterConstants.ADAPTER_KEEP_ALIVE_TIME_NAME));
- } else {
- defaultKeepAliveTime = HTTPEventAdapterConstants.DEFAULT_KEEP_ALIVE_TIME_IN_MILLS;
- }
-
- if (globalProperties.get(HTTPEventAdapterConstants.ADAPTER_EXECUTOR_JOB_QUEUE_SIZE_NAME) != null) {
- jobQueueSize = Integer
- .parseInt(globalProperties.get(HTTPEventAdapterConstants.ADAPTER_EXECUTOR_JOB_QUEUE_SIZE_NAME));
- } else {
- jobQueueSize = HTTPEventAdapterConstants.ADAPTER_EXECUTOR_JOB_QUEUE_SIZE;
- }
-
- RejectedExecutionHandler rejectedExecutionHandler = new RejectedExecutionHandler() {
- @Override
- public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
- try {
- executor.getQueue().put(r);
- } catch (InterruptedException e) {
- log.error("Exception while adding event to executor queue : " + e.getMessage(), e);
- }
- }
-
- };
-
- executorService = new ThreadPoolExecutor(minThread, maxThread, defaultKeepAliveTime, TimeUnit.MILLISECONDS,
- new LinkedBlockingQueue(jobQueueSize), rejectedExecutionHandler);
-
- }
- }
-
- @Override
- public void testConnect() throws TestConnectionNotSupportedException {
- throw new TestConnectionNotSupportedException("not-supported");
- }
-
- @Override
- public void connect() {
- registerDynamicEndpoint(eventAdapterConfiguration.getName());
- isConnected = true;
- }
-
- @Override
- public void disconnect() {
- if (isConnected){
- isConnected = false;
- unregisterDynamicEndpoint(eventAdapterConfiguration.getName());
- }
- }
-
- @Override
- public void destroy() {
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o)
- return true;
- if (!(o instanceof HTTPEventAdapter))
- return false;
-
- HTTPEventAdapter that = (HTTPEventAdapter) o;
-
- return id.equals(that.id);
-
- }
-
- @Override
- public int hashCode() {
- return id.hashCode();
- }
-
- @Override
- public boolean isEventDuplicatedInCluster() {
- return false;
- }
-
- @Override
- public boolean isPolling() {
- return false;
- }
-
- private void registerDynamicEndpoint(String adapterName) {
-
- String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
- int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
-
- String endpoint;
- if (MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(tenantDomain)) {
- endpoint = HTTPEventAdapterConstants.ENDPOINT_PREFIX + adapterName;
- } else {
- endpoint = HTTPEventAdapterConstants.ENDPOINT_PREFIX + HTTPEventAdapterConstants.ENDPOINT_TENANT_KEY
- + HTTPEventAdapterConstants.ENDPOINT_URL_SEPARATOR + tenantDomain
- + HTTPEventAdapterConstants.ENDPOINT_URL_SEPARATOR + adapterName;
- }
-
- try {
- HttpService httpService = EventAdapterServiceDataHolder.getHTTPService();
- if (httpService == null) {
- throw new InputEventAdapterRuntimeException(
- "HttpService not available, Error in registering endpoint " + endpoint);
- }
- httpService.registerServlet(endpoint, new HTTPMessageServlet(eventAdaptorListener, tenantId,
- eventAdapterConfiguration),
- new Hashtable(), httpService.createDefaultHttpContext());
- } catch (ServletException | NamespaceException e) {
- throw new InputEventAdapterRuntimeException("Error in registering endpoint " + endpoint, e);
- }
-
- }
-
- private void unregisterDynamicEndpoint(String adapterName) {
- HttpService httpService = EventAdapterServiceDataHolder.getHTTPService();
- String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
- String endpoint;
- if (MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(tenantDomain)) {
- endpoint = HTTPEventAdapterConstants.ENDPOINT_PREFIX + adapterName;
- } else {
- endpoint = HTTPEventAdapterConstants.ENDPOINT_PREFIX + HTTPEventAdapterConstants.ENDPOINT_TENANT_KEY
- + HTTPEventAdapterConstants.ENDPOINT_URL_SEPARATOR + tenantDomain
- + HTTPEventAdapterConstants.ENDPOINT_URL_SEPARATOR + adapterName;
- }
- if (httpService != null) {
- httpService.unregister(endpoint);
- }
-
- }
-}
\ No newline at end of file
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/HTTPEventAdapterFactory.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/HTTPEventAdapterFactory.java
deleted file mode 100644
index 2466f968..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/HTTPEventAdapterFactory.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2005 - 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * 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.
- */
-package org.wso2.carbon.event.input.adapter.extensions.http;
-
-
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapter;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapterConfiguration;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapterFactory;
-import org.wso2.carbon.event.input.adapter.core.MessageType;
-import org.wso2.carbon.event.input.adapter.core.Property;
-import org.wso2.carbon.event.input.adapter.extensions.http.util.HTTPEventAdapterConstants;
-import org.wso2.carbon.utils.CarbonUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.ResourceBundle;
-
-/**
- * The http event adapter factory class to create a http input adapter
- */
-public class HTTPEventAdapterFactory extends InputEventAdapterFactory {
-
- private ResourceBundle resourceBundle =
- ResourceBundle.getBundle("org.wso2.carbon.event.input.adapter.extensions.http.i18n.Resources", Locale.getDefault());
- private int httpPort;
- private int httpsPort;
- private int portOffset;
-
- public HTTPEventAdapterFactory() {
- portOffset = getPortOffset();
- httpPort = HTTPEventAdapterConstants.DEFAULT_HTTP_PORT + portOffset;
- httpsPort = HTTPEventAdapterConstants.DEFAULT_HTTPS_PORT + portOffset;
- }
-
- @Override
- public String getType() {
- return HTTPEventAdapterConstants.ADAPTER_TYPE_HTTP;
- }
-
- @Override
- public List getSupportedMessageFormats() {
- List supportInputMessageTypes = new ArrayList();
- supportInputMessageTypes.add(MessageType.JSON);
- return supportInputMessageTypes;
- }
-
- @Override
- public List getPropertyList() {
-
- List propertyList = new ArrayList();
-
- // Transport Exposed
- Property exposedTransportsProperty = new Property(HTTPEventAdapterConstants.EXPOSED_TRANSPORTS);
- exposedTransportsProperty.setRequired(true);
- exposedTransportsProperty.setDisplayName(
- resourceBundle.getString(HTTPEventAdapterConstants.EXPOSED_TRANSPORTS));
- exposedTransportsProperty.setOptions(
- new String[]{HTTPEventAdapterConstants.HTTPS, HTTPEventAdapterConstants.HTTP,
- HTTPEventAdapterConstants.LOCAL, HTTPEventAdapterConstants.ALL});
- exposedTransportsProperty.setDefaultValue(HTTPEventAdapterConstants.ALL);
- propertyList.add(exposedTransportsProperty);
-
- // OAUTH validation endpoint admin service username
- Property username = new Property(HTTPEventAdapterConstants.USERNAME);
- username.setRequired(true);
- username.setDisplayName(resourceBundle.getString(HTTPEventAdapterConstants.USERNAME));
- username.setHint(resourceBundle.getString(HTTPEventAdapterConstants.USERNAME_HINT));
- propertyList.add(username);
-
- // OAUTH validation endpoint admin service password
- Property password = new Property(HTTPEventAdapterConstants.PASSWORD);
- password.setRequired(true);
- password.setDisplayName(resourceBundle.getString(HTTPEventAdapterConstants.PASSWORD));
- password.setHint(resourceBundle.getString(HTTPEventAdapterConstants.PASSWORD_HINT));
- propertyList.add(password);
-
- // OAUTH validation endpoint
- Property tokenValidationEndpoint = new Property(HTTPEventAdapterConstants.TOKEN_VALIDATION_ENDPOINT_URL);
- tokenValidationEndpoint.setRequired(true);
- tokenValidationEndpoint.setDisplayName(resourceBundle.getString(HTTPEventAdapterConstants.TOKEN_VALIDATION_ENDPOINT_URL));
- tokenValidationEndpoint.setHint(resourceBundle.getString(HTTPEventAdapterConstants.TOKEN_VALIDATION_ENDPOINT_URL_HINT));
- propertyList.add(tokenValidationEndpoint);
-
- Property maximumHttpConnectionPerHost = new Property(HTTPEventAdapterConstants.MAXIMUM_HTTP_CONNECTION_PER_HOST);
- maximumHttpConnectionPerHost.setRequired(true);
- maximumHttpConnectionPerHost.setDisplayName(resourceBundle.getString(
- HTTPEventAdapterConstants.MAXIMUM_HTTP_CONNECTION_PER_HOST));
- maximumHttpConnectionPerHost.setHint(resourceBundle.getString(
- HTTPEventAdapterConstants.MAXIMUM_HTTP_CONNECTION_PER_HOST_HINT));
- maximumHttpConnectionPerHost.setDefaultValue(HTTPEventAdapterConstants.MAX_HTTP_CONNECTION);
- propertyList.add(maximumHttpConnectionPerHost);
-
- Property maxTotalHttpConnection = new Property(HTTPEventAdapterConstants.MAXIMUM_TOTAL_HTTP_CONNECTION);
- maxTotalHttpConnection.setRequired(true);
- maxTotalHttpConnection.setDisplayName(resourceBundle.getString(
- HTTPEventAdapterConstants.MAXIMUM_TOTAL_HTTP_CONNECTION));
- maxTotalHttpConnection.setHint(resourceBundle.getString(
- HTTPEventAdapterConstants.MAXIMUM_TOTAL_HTTP_CONNECTION_HINT));
- maxTotalHttpConnection.setDefaultValue(HTTPEventAdapterConstants.MAX_TOTAL_HTTP_CONNECTION);
- propertyList.add(maxTotalHttpConnection);
-
- //Content Validator details
- Property contentValidator = new Property(HTTPEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME);
- contentValidator.setDisplayName(
- resourceBundle.getString(HTTPEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME));
- contentValidator.setRequired(false);
- contentValidator.setHint(
- resourceBundle.getString(HTTPEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME_HINT));
- contentValidator.setDefaultValue(HTTPEventAdapterConstants.DEFAULT);
- propertyList.add(contentValidator);
-
- //Content Validator Params details
- Property contentValidatorParams = new Property(HTTPEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS);
- contentValidatorParams.setDisplayName(
- resourceBundle.getString(HTTPEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS));
- contentValidatorParams.setRequired(false);
- contentValidatorParams.setHint(
- resourceBundle.getString(HTTPEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS_HINT));
- contentValidatorParams.setDefaultValue(HTTPEventAdapterConstants.MQTT_CONTENT_VALIDATION_DEFAULT_PARAMETERS);
- propertyList.add(contentValidatorParams);
- return propertyList;
- }
-
- @Override
- public String getUsageTips() {
- return resourceBundle.getString(HTTPEventAdapterConstants.ADAPTER_USAGE_TIPS_PREFIX) + httpPort +
- resourceBundle.getString(HTTPEventAdapterConstants.ADAPTER_USAGE_TIPS_MID1) + httpsPort +
- resourceBundle.getString(HTTPEventAdapterConstants.ADAPTER_USAGE_TIPS_MID2) + httpPort +
- resourceBundle.getString(HTTPEventAdapterConstants.ADAPTER_USAGE_TIPS_MID3) + httpsPort +
- resourceBundle.getString(HTTPEventAdapterConstants.ADAPTER_USAGE_TIPS_POSTFIX);
- }
-
- @Override
- public InputEventAdapter createEventAdapter(InputEventAdapterConfiguration eventAdapterConfiguration,
- Map globalProperties) {
- return new HTTPEventAdapter(eventAdapterConfiguration, globalProperties);
- }
-
- private int getPortOffset() {
- return CarbonUtils.getPortFromServerConfig(HTTPEventAdapterConstants.CARBON_CONFIG_PORT_OFFSET_NODE) + 1;
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/HTTPMessageServlet.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/HTTPMessageServlet.java
deleted file mode 100644
index 1646c3cf..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/HTTPMessageServlet.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * Copyright (c) 2005 - 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * 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.
- */
-
-package org.wso2.carbon.event.input.adapter.extensions.http;
-
-import org.apache.axis2.context.ServiceContext;
-import org.apache.axis2.transport.http.HTTPConstants;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.pool.impl.GenericObjectPool;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapterConfiguration;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapterListener;
-import org.wso2.carbon.event.input.adapter.extensions.ContentInfo;
-import org.wso2.carbon.event.input.adapter.extensions.ContentValidator;
-import org.wso2.carbon.event.input.adapter.extensions.http.oauth.OAuthTokenValidaterStubFactory;
-import org.wso2.carbon.event.input.adapter.extensions.http.util.AuthenticationInfo;
-import org.wso2.carbon.event.input.adapter.extensions.http.util.HTTPContentValidator;
-import org.wso2.carbon.event.input.adapter.extensions.http.util.HTTPEventAdapterConstants;
-import org.wso2.carbon.event.input.adapter.extensions.internal.EventAdapterServiceDataHolder;
-import org.wso2.carbon.event.input.adapter.extensions.mqtt.exception.MQTTContentValidatorInitializationException;
-import org.wso2.carbon.identity.oauth2.stub.OAuth2TokenValidationServiceStub;
-import org.wso2.carbon.identity.oauth2.stub.dto.OAuth2TokenValidationRequestDTO;
-import org.wso2.carbon.identity.oauth2.stub.dto.OAuth2TokenValidationRequestDTO_OAuth2AccessToken;
-import org.wso2.carbon.identity.oauth2.stub.dto.OAuth2TokenValidationResponseDTO;
-import org.wso2.carbon.user.api.UserStoreException;
-import org.wso2.carbon.user.core.service.RealmService;
-import org.wso2.carbon.utils.multitenancy.MultitenantUtils;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.rmi.RemoteException;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * This will act as the event reciver.
- */
-public class HTTPMessageServlet extends HttpServlet {
-
- private static final String AUTHORIZATION_HEADER = "Authorization";
- private static final String AUTH_MESSAGE_STORE_AUTHENTICATION_INFO = "AUTH_MESSAGE_STORE_AUTHENTICATION_INFO";
- private static final String AUTH_FAILURE_RESPONSE = "_AUTH_FAILURE_";
- private static final Pattern PATTERN = Pattern.compile("[B|b]earer\\s");
- private static final String TOKEN_TYPE = "bearer";
- private static String cookie;
- private static Log log = LogFactory.getLog(HTTPMessageServlet.class);
- private GenericObjectPool stubs;
- private static Map contentValidationProperties;
- private static ContentValidator contentValidator;
- private InputEventAdapterListener eventAdaptorListener;
- private int tenantId;
- private String exposedTransports;
-
- public HTTPMessageServlet(InputEventAdapterListener eventAdaptorListener, int tenantId,
- InputEventAdapterConfiguration eventAdapterConfiguration) {
- this.eventAdaptorListener = eventAdaptorListener;
- this.tenantId = tenantId;
- this.exposedTransports = eventAdapterConfiguration.getProperties().get(
- HTTPEventAdapterConstants.EXPOSED_TRANSPORTS);
- this.stubs = new GenericObjectPool(new OAuthTokenValidaterStubFactory(eventAdapterConfiguration));
- this.contentValidationProperties = new HashMap();
- String contentValidationParams = eventAdapterConfiguration.getProperties().get(
- HTTPEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS);
- if (contentValidationParams != null && !contentValidationParams.isEmpty()) {
- String validationParams[] = contentValidationParams.split(",");
- for (String validationParam : validationParams) {
- String[] validationProperty = validationParam.split(":");
- if (validationProperty.length == 2) {
- contentValidationProperties.put(validationProperty[0], validationProperty[1]);
- }
- }
- }
-
- String className = eventAdapterConfiguration.getProperties().get(
- HTTPEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME);
- if (HTTPEventAdapterConstants.DEFAULT.equals(className)) {
- contentValidator = new HTTPContentValidator();
- } else {
- try {
- Class extends ContentValidator> contentValidatorClass = Class.forName(className)
- .asSubclass(ContentValidator.class);
- contentValidator = contentValidatorClass.newInstance();
- } catch (ClassNotFoundException e) {
- throw new MQTTContentValidatorInitializationException(
- "Unable to find the class authorizer: " + className, e);
- } catch (InstantiationException e) {
- throw new MQTTContentValidatorInitializationException(
- "Unable to create an instance of :" + className, e);
- } catch (IllegalAccessException e) {
- throw new MQTTContentValidatorInitializationException("Access of the instance in not allowed.", e);
- }
- }
- }
-
- private String getBearerToken(HttpServletRequest request) {
- String authorizationHeader = request.getHeader(AUTHORIZATION_HEADER);
- if (authorizationHeader != null) {
- Matcher matcher = PATTERN.matcher(authorizationHeader);
- if (matcher.find()) {
- authorizationHeader = authorizationHeader.substring(matcher.end());
- }
- }
- return authorizationHeader;
- }
-
- private AuthenticationInfo checkAuthentication(HttpServletRequest req) {
- AuthenticationInfo authenticationInfo = (AuthenticationInfo) req.getSession().getAttribute(
- AUTH_MESSAGE_STORE_AUTHENTICATION_INFO);
- if (authenticationInfo != null) {
- return authenticationInfo;
- }
- String bearerToken = getBearerToken(req);
- if (bearerToken == null) {
- return authenticationInfo;
- }
-
- RealmService realmService = EventAdapterServiceDataHolder.getRealmService();
- try {
- authenticationInfo = validateToken(bearerToken);
- boolean success = authenticationInfo.isAuthenticated();
- if (success) {
- req.getSession().setAttribute(AUTH_MESSAGE_STORE_AUTHENTICATION_INFO, authenticationInfo);
- }
- } catch (Exception e) {
- if (log.isDebugEnabled()) {
- log.debug("checkAuthentication() fail: " + e.getMessage(), e);
- }
- }
- return authenticationInfo;
- }
-
- /**
- * This method gets a string accessToken and validates it
- *
- * @param token which need to be validated.
- * @return AuthenticationInfo with the validated results.
- */
- private AuthenticationInfo validateToken(String token) {
- OAuth2TokenValidationServiceStub tokenValidationServiceStub = null;
- try {
- Object stub = this.stubs.borrowObject();
- if (stub != null) {
- tokenValidationServiceStub = (OAuth2TokenValidationServiceStub) stub;
- if (cookie != null) {
- tokenValidationServiceStub._getServiceClient().getOptions().setProperty(
- HTTPConstants.COOKIE_STRING, cookie);
- }
- return getAuthenticationInfo(token, tokenValidationServiceStub);
- } else {
- log.warn("Stub initialization failed.");
- }
- } catch (RemoteException e) {
- log.error("Error on connecting with the validation endpoint.", e);
- } catch (Exception e) {
- log.error("Error occurred in borrowing an validation stub from the pool.", e);
-
- } finally {
- try {
- if (tokenValidationServiceStub != null) {
- this.stubs.returnObject(tokenValidationServiceStub);
- }
- } catch (Exception e) {
- log.warn("Error occurred while returning the object back to the oauth token validation service " +
- "stub pool.", e);
- }
- }
- AuthenticationInfo authenticationInfo = new AuthenticationInfo();
- authenticationInfo.setAuthenticated(false);
- authenticationInfo.setTenantId(-1);
- return authenticationInfo;
- }
-
- /**
- * This creates an AuthenticationInfo object that is used for authorization. This method will validate the token
- * and
- * sets the required parameters to the object.
- *
- * @param token that needs to be validated.
- * @param tokenValidationServiceStub stub that is used to call the external service.
- * @return AuthenticationInfo This contains the information related to authenticated client.
- * @throws RemoteException that triggers when failing to call the external service..
- */
- private AuthenticationInfo getAuthenticationInfo(String token,
- OAuth2TokenValidationServiceStub tokenValidationServiceStub)
- throws RemoteException, UserStoreException {
- AuthenticationInfo authenticationInfo = new AuthenticationInfo();
- OAuth2TokenValidationRequestDTO validationRequest = new OAuth2TokenValidationRequestDTO();
- OAuth2TokenValidationRequestDTO_OAuth2AccessToken accessToken =
- new OAuth2TokenValidationRequestDTO_OAuth2AccessToken();
- accessToken.setTokenType(TOKEN_TYPE);
- accessToken.setIdentifier(token);
- validationRequest.setAccessToken(accessToken);
- boolean authenticated;
- OAuth2TokenValidationResponseDTO tokenValidationResponse;
- tokenValidationResponse = tokenValidationServiceStub.validate(validationRequest);
- if (tokenValidationResponse == null) {
- authenticationInfo.setAuthenticated(false);
- return authenticationInfo;
- }
- authenticated = tokenValidationResponse.getValid();
- if (authenticated) {
- String authorizedUser = tokenValidationResponse.getAuthorizedUser();
- String username = MultitenantUtils.getTenantAwareUsername(authorizedUser);
- String tenantDomain = MultitenantUtils.getTenantDomain(authorizedUser);
- authenticationInfo.setUsername(username);
- authenticationInfo.setTenantDomain(tenantDomain);
- RealmService realmService = EventAdapterServiceDataHolder.getRealmService();
- int tenantId = realmService.getTenantManager().getTenantId(authenticationInfo.getTenantDomain());
- authenticationInfo.setTenantId(tenantId);
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Token validation failed for token: " + token);
- }
- }
- ServiceContext serviceContext = tokenValidationServiceStub._getServiceClient()
- .getLastOperationContext().getServiceContext();
- cookie = (String) serviceContext.getProperty(HTTPConstants.COOKIE_STRING);
- authenticationInfo.setAuthenticated(authenticated);
- return authenticationInfo;
- }
-
-
- private String inputStreamToString(InputStream in) throws IOException {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- byte[] buff = new byte[1024];
- int i;
- while ((i = in.read(buff)) > 0) {
- out.write(buff, 0, i);
- }
- out.close();
- return out.toString();
- }
-
- @Override
- protected void doPost(HttpServletRequest req,
- HttpServletResponse res) throws IOException {
-
- String data = this.inputStreamToString(req.getInputStream());
- if (data == null) {
- log.warn("Event Object is empty/null");
- return;
- }
- AuthenticationInfo authenticationInfo = null;
- if (exposedTransports.equalsIgnoreCase(HTTPEventAdapterConstants.HTTPS)) {
- if (!req.isSecure()) {
- res.setStatus(403);
- log.error("Only Secured endpoint is enabled for requests");
- return;
- } else {
- authenticationInfo = this.checkAuthentication(req);
- int tenantId = authenticationInfo != null ? authenticationInfo.getTenantId() : -1;
- if (tenantId == -1) {
- res.getOutputStream().write(AUTH_FAILURE_RESPONSE.getBytes());
- res.setStatus(401);
- log.error("Authentication failed for the request");
- return;
- } else if (tenantId != this.tenantId) {
- res.getOutputStream().write(AUTH_FAILURE_RESPONSE.getBytes());
- res.setStatus(401);
- log.error("Authentication failed for the request");
- return;
- }
- }
- } else if (exposedTransports.equalsIgnoreCase(HTTPEventAdapterConstants.HTTP)) {
- if (req.isSecure()) {
- res.setStatus(403);
- log.error("Only unsecured endpoint is enabled for requests");
- return;
- }
- } else {
- authenticationInfo = this.checkAuthentication(req);
- int tenantId = authenticationInfo != null ? authenticationInfo.getTenantId() : -1;
- if (tenantId == -1) {
- res.getOutputStream().write(AUTH_FAILURE_RESPONSE.getBytes());
- res.setStatus(401);
- log.error("Authentication failed for the request");
- return;
- } else if (tenantId != this.tenantId) {
- res.getOutputStream().write(AUTH_FAILURE_RESPONSE.getBytes());
- res.setStatus(401);
- log.error("Authentication failed for the request");
- return;
- }
- }
-
- if (log.isDebugEnabled()) {
- log.debug("Message : " + data);
- }
-
- if (authenticationInfo != null) {
- Map paramMap = new HashMap<>();
- paramMap.putAll(contentValidationProperties);
- Enumeration reqParameterNames = req.getParameterNames();
- while (reqParameterNames.hasMoreElements()) {
- String paramterName = reqParameterNames.nextElement();
- paramMap.put(paramterName, req.getParameter(paramterName));
- }
- paramMap.put(HTTPEventAdapterConstants.USERNAME_TAG, authenticationInfo.getUsername());
- paramMap.put(HTTPEventAdapterConstants.TENANT_DOMAIN_TAG, authenticationInfo.getTenantDomain());
- if (contentValidator != null) {
- ContentInfo contentInfo = contentValidator.validate(data, paramMap);
- if (contentInfo != null && contentInfo.isValidContent()) {
- HTTPEventAdapter.executorService.submit(new HTTPRequestProcessor(eventAdaptorListener,
- contentInfo.getMsgText(), tenantId));
- }
- }
- }
- }
-
- @Override
- protected void doGet(HttpServletRequest req,
- HttpServletResponse res) throws IOException {
- doPost(req, res);
- }
-
- public class HTTPRequestProcessor implements Runnable {
-
- private InputEventAdapterListener inputEventAdapterListener;
- private String payload;
- private int tenantId;
-
- public HTTPRequestProcessor(InputEventAdapterListener inputEventAdapterListener,
- String payload, int tenantId) {
- this.inputEventAdapterListener = inputEventAdapterListener;
- this.payload = payload;
- this.tenantId = tenantId;
- }
-
- public void run() {
- try {
- PrivilegedCarbonContext.startTenantFlow();
- PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(tenantId);
-
- if (log.isDebugEnabled()) {
- log.debug("Event received in HTTP Event Adapter - " + payload);
- }
-
- if (payload.trim() != null) {
- inputEventAdapterListener.onEvent(payload);
- } else {
- log.warn("Dropping the empty/null event received through http adapter");
- }
- } catch (Exception e) {
- log.error("Error while parsing http request for processing: " + e.getMessage(), e);
- } finally {
- PrivilegedCarbonContext.endTenantFlow();
- }
- }
-
- }
-
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/oauth/OAuthTokenValidaterStubFactory.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/oauth/OAuthTokenValidaterStubFactory.java
deleted file mode 100644
index 981138fe..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/oauth/OAuthTokenValidaterStubFactory.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (c) 2016, 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.
- */
-package org.wso2.carbon.event.input.adapter.extensions.http.oauth;
-
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.transport.http.HTTPConstants;
-import org.apache.axis2.transport.http.HttpTransportProperties;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpConnectionManager;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.contrib.ssl.EasySSLProtocolSocketFactory;
-import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
-import org.apache.commons.httpclient.protocol.Protocol;
-import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
-import org.apache.commons.pool.BasePoolableObjectFactory;
-import org.apache.log4j.Logger;
-import org.wso2.carbon.core.util.Utils;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapterConfiguration;
-import org.wso2.carbon.event.input.adapter.extensions.http.oauth.exception.OAuthTokenValidationException;
-import org.wso2.carbon.event.input.adapter.extensions.http.util.HTTPEventAdapterConstants;
-import org.wso2.carbon.identity.oauth2.stub.OAuth2TokenValidationServiceStub;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.security.GeneralSecurityException;
-
-/**
- * This follows object pool pattern to manage the stub for oauth validation service.
- */
-public class OAuthTokenValidaterStubFactory extends BasePoolableObjectFactory {
- private static final Logger log = Logger.getLogger(OAuthTokenValidaterStubFactory.class);
- private HttpClient httpClient;
- InputEventAdapterConfiguration eventAdapterConfiguration;
-
-
- public OAuthTokenValidaterStubFactory(InputEventAdapterConfiguration eventAdapterConfiguration) {
- this.eventAdapterConfiguration = eventAdapterConfiguration;
- this.httpClient = createHttpClient();
- }
-
- /**
- * This creates a OAuth2TokenValidationServiceStub object to the pool.
- *
- * @return an OAuthValidationStub object
- * @throws Exception thrown when creating the object.
- */
- @Override
- public Object makeObject() throws Exception {
- return this.generateStub();
- }
-
- /**
- * This is used to clean up the OAuth validation stub and releases to the object pool.
- *
- * @param o object that needs to be released.
- * @throws Exception throws when failed to release to the pool
- */
- @Override
- public void passivateObject(Object o) throws Exception {
- if (o instanceof OAuth2TokenValidationServiceStub) {
- OAuth2TokenValidationServiceStub stub = (OAuth2TokenValidationServiceStub) o;
- stub._getServiceClient().cleanupTransport();
- }
- }
-
- /**
- * This is used to create a stub which will be triggered through object pool factory, which will create an
- * instance of it.
- *
- * @return OAuth2TokenValidationServiceStub stub that is used to call an external service.
- * @throws OAuthTokenValidationException will be thrown when initialization failed.
- */
- private OAuth2TokenValidationServiceStub generateStub() throws OAuthTokenValidationException {
- OAuth2TokenValidationServiceStub stub;
- try {
- URL hostURL = new URL(Utils.replaceSystemProperty(eventAdapterConfiguration.getProperties().get(
- HTTPEventAdapterConstants.TOKEN_VALIDATION_ENDPOINT_URL)));
- if (hostURL != null) {
- stub = new OAuth2TokenValidationServiceStub(hostURL.toString());
- if (stub != null) {
- ServiceClient client = stub._getServiceClient();
- client.getServiceContext().getConfigurationContext().setProperty(
- HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
-
- HttpTransportProperties.Authenticator auth =
- new HttpTransportProperties.Authenticator();
- auth.setPreemptiveAuthentication(true);
- String username = eventAdapterConfiguration.getProperties().get(HTTPEventAdapterConstants
- .USERNAME);
- String password = eventAdapterConfiguration.getProperties().get(HTTPEventAdapterConstants
- .PASSWORD);
- auth.setPassword(username);
- auth.setUsername(password);
- Options options = client.getOptions();
- options.setProperty(HTTPConstants.AUTHENTICATE, auth);
- options.setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Constants.VALUE_TRUE);
- client.setOptions(options);
- if (hostURL.getProtocol().equals("https")) {
- // set up ssl factory since axis2 https transport is used.
- EasySSLProtocolSocketFactory sslProtocolSocketFactory =
- createProtocolSocketFactory();
- Protocol authhttps = new Protocol(hostURL.getProtocol(),
- (ProtocolSocketFactory) sslProtocolSocketFactory,
- hostURL.getPort());
- Protocol.registerProtocol(hostURL.getProtocol(), authhttps);
- options.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER, authhttps);
- }
- } else {
- String errorMsg = "OAuth Validation instanization failed.";
- throw new OAuthTokenValidationException(errorMsg);
- }
- } else {
- String errorMsg = "host url is invalid";
- throw new OAuthTokenValidationException(errorMsg);
- }
- } catch (AxisFault axisFault) {
- throw new OAuthTokenValidationException(
- "Error occurred while creating the OAuth2TokenValidationServiceStub.", axisFault);
- } catch (MalformedURLException e) {
- throw new OAuthTokenValidationException(
- "Error occurred while parsing token endpoint URL", e);
- }
-
- return stub;
- }
-
- /**
- * This is required to create a trusted connection with the external entity.
- * Have to manually configure it since we use CommonHTTPTransport(axis2 transport) in axis2.
- *
- * @return an EasySSLProtocolSocketFactory for SSL communication.
- */
- private EasySSLProtocolSocketFactory createProtocolSocketFactory() throws OAuthTokenValidationException {
- try {
- EasySSLProtocolSocketFactory easySSLPSFactory = new EasySSLProtocolSocketFactory();
- return easySSLPSFactory;
- } catch (IOException e) {
- String errorMsg = "Failed to initiate EasySSLProtocolSocketFactory.";
- throw new OAuthTokenValidationException(errorMsg, e);
- } catch (GeneralSecurityException e) {
- String errorMsg = "Failed to set the key material in easy ssl factory.";
- throw new OAuthTokenValidationException(errorMsg, e);
- }
- }
-
- /**
- * This created httpclient pool that can be used to connect to external entity. This connection can be configured
- * via broker.xml by setting up the required http connection parameters.
- *
- * @return an instance of HttpClient that is configured with MultiThreadedHttpConnectionManager
- */
- private HttpClient createHttpClient() {
- HttpConnectionManagerParams params = new HttpConnectionManagerParams();
- params.setDefaultMaxConnectionsPerHost(Integer.parseInt(eventAdapterConfiguration.getProperties().get(
- HTTPEventAdapterConstants.MAXIMUM_HTTP_CONNECTION_PER_HOST)));
- params.setMaxTotalConnections(Integer.parseInt(eventAdapterConfiguration.getProperties().get(
- HTTPEventAdapterConstants.MAXIMUM_TOTAL_HTTP_CONNECTION)));
- HttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
- connectionManager.setParams(params);
- return new HttpClient(connectionManager);
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/oauth/exception/OAuthTokenValidationException.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/oauth/exception/OAuthTokenValidationException.java
deleted file mode 100644
index d7b7b579..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/oauth/exception/OAuthTokenValidationException.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2016, 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.
- */
-package org.wso2.carbon.event.input.adapter.extensions.http.oauth.exception;
-
-/**
- * This Exception will be thrown, when there any interference with token validation flow.
- */
-public class OAuthTokenValidationException extends Exception {
- private String errMessage;
-
- public OAuthTokenValidationException(String msg, Exception nestedEx) {
- super(msg, nestedEx);
- setErrorMessage(msg);
- }
-
- public OAuthTokenValidationException(String message, Throwable cause) {
- super(message, cause);
- setErrorMessage(message);
- }
-
- public OAuthTokenValidationException(String msg) {
- super(msg);
- setErrorMessage(msg);
- }
-
- public OAuthTokenValidationException() {
- super();
- }
-
- public OAuthTokenValidationException(Throwable cause) {
- super(cause);
- }
-
- public String getErrorMessage() {
- return errMessage;
- }
-
- public void setErrorMessage(String errMessage) {
- this.errMessage = errMessage;
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/util/AuthenticationInfo.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/util/AuthenticationInfo.java
deleted file mode 100644
index f1498a70..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/util/AuthenticationInfo.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * 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.
- *
- */
-
-package org.wso2.carbon.event.input.adapter.extensions.http.util;
-
-/**
- * This will be return after authentication and this will consist of the authenticated user info.
- */
-public class AuthenticationInfo {
-
- /**
- * this variable is used to check whether the client is authenticated.
- */
- private boolean authenticated;
- private String username;
- private String tenantDomain;
- private int tenantId;
- /**
- * returns whether the client is authenticated
- */
- public boolean isAuthenticated() {
- return authenticated;
- }
-
- public void setAuthenticated(boolean authenticated) {
- this.authenticated = authenticated;
- }
-
- /**
- * returns the authenticated client username
- */
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- /**
- * return the authenticated client tenant domain
- */
- public String getTenantDomain() {
- return tenantDomain;
- }
-
- public void setTenantDomain(String tenantDomain) {
- this.tenantDomain = tenantDomain;
- }
-
- public int getTenantId() {
- return tenantId;
- }
-
- public void setTenantId(int tenantId) {
- this.tenantId = tenantId;
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/util/HTTPContentValidator.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/util/HTTPContentValidator.java
deleted file mode 100644
index 2fde7e32..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/util/HTTPContentValidator.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-* Copyright (c) 2016, 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.
-*/
-
-package org.wso2.carbon.event.input.adapter.extensions.http.util;
-
-import com.jayway.jsonpath.JsonPath;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.json.simple.JSONArray;
-import org.json.simple.parser.JSONParser;
-import org.json.simple.parser.ParseException;
-import org.wso2.carbon.event.input.adapter.extensions.ContentInfo;
-import org.wso2.carbon.event.input.adapter.extensions.ContentValidator;
-
-import java.util.Map;
-
-public class HTTPContentValidator implements ContentValidator {
- private static final Log log = LogFactory.getLog(HTTPContentValidator.class);
- private static String JSON_ARRAY_START_CHAR = "[";
-
- @Override
- public ContentInfo validate(String msgPayload, Map paramMap) {
- String deviceId = paramMap.get("deviceId");
- String msg = msgPayload;
- String deviceIdJsonPath = paramMap.get(HTTPEventAdapterConstants.DEVICE_ID_JSON_PATH);
- boolean status;
- if (msg.startsWith(JSON_ARRAY_START_CHAR)) {
- status = processMultipleEvents(msg, deviceId, deviceIdJsonPath);
- } else {
- status = processSingleEvent(msg, deviceId, deviceIdJsonPath);
- }
- return new ContentInfo(status, msg);
- }
-
- private boolean processSingleEvent(String msg, String deviceIdFromTopic, String deviceIdJsonPath) {
- Object res = JsonPath.read(msg, deviceIdJsonPath);
- String deviceIdFromContent = (res != null) ? res.toString() : "";
- if (deviceIdFromContent.equals(deviceIdFromTopic)) {
- return true;
- }
- return false;
- }
-
- private boolean processMultipleEvents(String msg, String deviceIdFromTopic, String deviceIdJsonPath) {
- try {
- JSONParser jsonParser = new JSONParser();
- JSONArray jsonArray = (JSONArray) jsonParser.parse(msg);
- boolean status = false;
- for (int i = 0; i < jsonArray.size(); i++) {
- status = processSingleEvent(jsonArray.get(i).toString(), deviceIdFromTopic, deviceIdJsonPath);
- if (!status) {
- return status;
- }
- }
- return status;
- } catch (ParseException e) {
- log.error("Invalid input " + msg, e);
- return false;
- }
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/util/HTTPEventAdapterConstants.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/util/HTTPEventAdapterConstants.java
deleted file mode 100644
index 68af844e..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/http/util/HTTPEventAdapterConstants.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * 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.
- */
-package org.wso2.carbon.event.input.adapter.extensions.http.util;
-
-/**
- * This holds the constants related to HTTP event adapter.
- */
-public final class HTTPEventAdapterConstants {
-
- private HTTPEventAdapterConstants() {
- }
-
- public static final String ADAPTER_TYPE_HTTP = "oauth-http";
- public static final String ADAPTER_USAGE_TIPS_PREFIX = "http.usage.tips_prefix";
- public static final String ADAPTER_USAGE_TIPS_MID1 = "http.usage.tips_mid1";
- public static final String ADAPTER_USAGE_TIPS_MID2 = "http.usage.tips_mid2";
- public static final String ADAPTER_USAGE_TIPS_MID3 = "http.usage.tips_mid3";
- public static final String ADAPTER_USAGE_TIPS_POSTFIX = "http.usage.tips_postfix";
- public static final int ADAPTER_MIN_THREAD_POOL_SIZE = 8;
- public static final int ADAPTER_MAX_THREAD_POOL_SIZE = 100;
- public static final int ADAPTER_EXECUTOR_JOB_QUEUE_SIZE = 10000;
- public static final long DEFAULT_KEEP_ALIVE_TIME_IN_MILLS = 20000;
- public static final String ENDPOINT_PREFIX = "/endpoints/";
- public static final String ENDPOINT_URL_SEPARATOR = "/";
- public static final String ENDPOINT_TENANT_KEY = "t";
- public static final String ADAPTER_MIN_THREAD_POOL_SIZE_NAME = "minThread";
- public static final String ADAPTER_MAX_THREAD_POOL_SIZE_NAME = "maxThread";
- public static final String ADAPTER_KEEP_ALIVE_TIME_NAME = "keepAliveTimeInMillis";
- public static final String ADAPTER_EXECUTOR_JOB_QUEUE_SIZE_NAME = "jobQueueSize";
- public static final String EXPOSED_TRANSPORTS = "transports";
- public static final String HTTPS = "https";
- public static final String HTTP = "http";
- public static final String LOCAL = "local";
- public static final String ALL = "all";
- public static final String CARBON_CONFIG_PORT_OFFSET_NODE = "Ports.Offset";
- public static final int DEFAULT_HTTP_PORT = 9763;
- public static final int DEFAULT_HTTPS_PORT = 9443;
- public static final String MAXIMUM_TOTAL_HTTP_CONNECTION = "maximumTotalHttpConnection";
- public static final String MAXIMUM_TOTAL_HTTP_CONNECTION_HINT = "maximumTotalHttpConnection.hint";
- public static final String MAXIMUM_HTTP_CONNECTION_PER_HOST = "maximumHttpConnectionPerHost";
- public static final String MAXIMUM_HTTP_CONNECTION_PER_HOST_HINT = "maximumHttpConnectionPerHost.hint";
- public static final String TOKEN_VALIDATION_ENDPOINT_URL = "tokenValidationEndpointUrl";
- public static final String TOKEN_VALIDATION_ENDPOINT_URL_HINT = "tokenValidationEndpointUrl.hint";
- public static final String USERNAME = "username";
- public static final String USERNAME_HINT = "username.hint";
- public static final String PASSWORD = "password";
- public static final String PASSWORD_HINT = "password.hint";
- public static final String DEFAULT_STRING = "default";
- public static final String MAX_HTTP_CONNECTION = "2";
- public static final String MAX_TOTAL_HTTP_CONNECTION = "100";
- public static final String TENANT_DOMAIN_TAG = "tenantDomain";
- public static final String USERNAME_TAG = "username";
- public static final String PAYLOAD_TAG = "payload";
- public static final String DEVICE_ID_JSON_PATH = "device_id_json_path";
- public static final String ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME = "contentValidation";
- public static final String ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME_HINT = "contentValidation.hint";
- public static final String ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS = "contentValidationParams";
- public static final String ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS_HINT = "contentValidationParams.hint";
- public static final String DEFAULT = "default";
- public static final String MQTT_CONTENT_VALIDATION_DEFAULT_PARAMETERS =
- "device_id_json_path:meta_deviceId";
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/internal/EventAdapterServiceComponent.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/internal/EventAdapterServiceComponent.java
deleted file mode 100644
index 397487ab..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/internal/EventAdapterServiceComponent.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-* Copyright (c) 2015, 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.
-*/
-package org.wso2.carbon.event.input.adapter.extensions.internal;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.osgi.service.component.ComponentContext;
-import org.osgi.service.http.HttpService;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapterFactory;
-import org.wso2.carbon.event.input.adapter.extensions.http.HTTPEventAdapterFactory;
-import org.wso2.carbon.event.input.adapter.extensions.mqtt.MQTTEventAdapterFactory;
-import org.wso2.carbon.user.core.service.RealmService;
-
-/**
- * @scr.component component.name="input.iot.Mqtt.AdapterService.component" immediate="true"
- */
-
-/**
- * @scr.component name="org.wso2.carbon.event.input.adapter.extension.EventAdapterServiceComponent" immediate="true"
- * @scr.reference name="user.realmservice.default"
- * interface="org.wso2.carbon.user.core.service.RealmService" cardinality="1..1"
- * policy="dynamic" bind="setRealmService" unbind="unsetRealmService"
- * @scr.reference name="http.service" interface="org.osgi.service.http.HttpService"
- * cardinality="1..1" policy="dynamic" bind="setHttpService" unbind="unsetHttpService"
- */
-public class EventAdapterServiceComponent {
-
- private static final Log log = LogFactory.getLog(EventAdapterServiceComponent.class);
-
- protected void activate(ComponentContext context) {
- try {
- InputEventAdapterFactory mqttEventAdapterFactory = new MQTTEventAdapterFactory();
- context.getBundleContext().registerService(InputEventAdapterFactory.class.getName(),
- mqttEventAdapterFactory, null);
- InputEventAdapterFactory httpEventEventAdapterFactory = new HTTPEventAdapterFactory();
- context.getBundleContext().registerService(InputEventAdapterFactory.class.getName(),
- httpEventEventAdapterFactory, null);
- if (log.isDebugEnabled()) {
- log.debug("Successfully deployed the input IoT-MQTT adapter service");
- }
- } catch (RuntimeException e) {
- log.error("Can not create the input IoT-MQTT adapter service ", e);
- }
- }
-
- protected void setRealmService(RealmService realmService) {
- EventAdapterServiceDataHolder.registerRealmService(realmService);
- }
-
- protected void unsetRealmService(RealmService realmService) {
- EventAdapterServiceDataHolder.registerRealmService(null);
- }
-
- protected void setHttpService(HttpService httpService) {
- EventAdapterServiceDataHolder.registerHTTPService(httpService);
- }
-
- protected void unsetHttpService(HttpService httpService) {
- EventAdapterServiceDataHolder.registerHTTPService(null);
- }
-
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/internal/EventAdapterServiceDataHolder.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/internal/EventAdapterServiceDataHolder.java
deleted file mode 100644
index 324196bf..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/internal/EventAdapterServiceDataHolder.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * 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.
- */
-package org.wso2.carbon.event.input.adapter.extensions.internal;
-
-import org.osgi.service.http.HttpService;
-import org.wso2.carbon.user.core.service.RealmService;
-
-/**
- * common place to hold some OSGI service references.
- */
-public final class EventAdapterServiceDataHolder {
-
- private static RealmService realmService;
- private static HttpService httpService;
-
- private EventAdapterServiceDataHolder() {
- }
-
- public static void registerRealmService(
- RealmService realmService) {
- EventAdapterServiceDataHolder.realmService = realmService;
- }
-
- public static RealmService getRealmService() {
- return realmService;
- }
-
- public static void registerHTTPService(
- HttpService httpService) {
- EventAdapterServiceDataHolder.httpService = httpService;
- }
-
- public static HttpService getHTTPService() {
- return httpService;
- }
-
-
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/Constants.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/Constants.java
deleted file mode 100644
index 9861c1c7..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/Constants.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2016, 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.
- */
-package org.wso2.carbon.event.input.adapter.extensions.mqtt;
-
-/**
- * This holds the constants related to MQTT input adapter.
- */
-public class Constants {
- public static final String EMPTY_STRING = "";
- public static final String GRANT_TYPE = "urn:ietf:params:oauth:grant-type:jwt-bearer refresh_token";
- public static final String TOKEN_SCOPE = "production";
- public static final String APPLICATION_TYPE = "device";
- public static final String CLIENT_ID = "client_id";
- public static final String CLIENT_SECRET = "client_secret";
- public static final String CLIENT_NAME = "client_name";
- public static final String DEFAULT = "default";
- public static final String MQTT_CONTENT_VALIDATION_DEFAULT_PARAMETERS =
- "device_id_json_path:event.metaData.deviceId,device_id_topic_hierarchy_index:2";
- public static final String TOPIC = "topic";
- public static final String PAYLOAD = "payload";
- public static final String DEVICE_ID_JSON_PATH = "device_id_json_path";
- public static final String DEVICE_ID_TOPIC_HIERARCHY_INDEX = "device_id_topic_hierarchy_index";
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/MQTTEventAdapter.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/MQTTEventAdapter.java
deleted file mode 100644
index 00c0494a..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/MQTTEventAdapter.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
-* Copyright (c) 2015, 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.
-*/
-package org.wso2.carbon.event.input.adapter.extensions.mqtt;
-
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapter;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapterConfiguration;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapterListener;
-import org.wso2.carbon.event.input.adapter.core.exception.InputEventAdapterException;
-import org.wso2.carbon.event.input.adapter.core.exception.TestConnectionNotSupportedException;
-import org.wso2.carbon.event.input.adapter.extensions.mqtt.util.MQTTAdapterListener;
-import org.wso2.carbon.event.input.adapter.extensions.mqtt.util.MQTTBrokerConnectionConfiguration;
-import org.wso2.carbon.event.input.adapter.extensions.mqtt.util.MQTTEventAdapterConstants;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-/**
- * Input MQTTEventAdapter will be used to receive events with MQTT protocol using specified broker and topic.
- */
-public class MQTTEventAdapter implements InputEventAdapter {
-
- private final InputEventAdapterConfiguration eventAdapterConfiguration;
- private final Map globalProperties;
- private InputEventAdapterListener eventAdapterListener;
- private final String id = UUID.randomUUID().toString();
- private MQTTAdapterListener mqttAdapterListener;
- private MQTTBrokerConnectionConfiguration mqttBrokerConnectionConfiguration;
-
-
- public MQTTEventAdapter(InputEventAdapterConfiguration eventAdapterConfiguration,
- Map globalProperties) {
- this.eventAdapterConfiguration = eventAdapterConfiguration;
- this.globalProperties = globalProperties;
- }
-
- @Override
- public void init(InputEventAdapterListener eventAdapterListener) throws InputEventAdapterException {
- this.eventAdapterListener = eventAdapterListener;
- try {
- int keepAlive;
-
- //If global properties are available those will be assigned else constant values will be assigned
- if (globalProperties.get(MQTTEventAdapterConstants.ADAPTER_CONF_KEEP_ALIVE) != null) {
- keepAlive = Integer.parseInt((globalProperties.get(MQTTEventAdapterConstants.ADAPTER_CONF_KEEP_ALIVE)));
- } else {
- keepAlive = MQTTEventAdapterConstants.ADAPTER_CONF_DEFAULT_KEEP_ALIVE;
- }
- String contentValidationParams = eventAdapterConfiguration.getProperties().get(MQTTEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS);
- String params[] = contentValidationParams.split(",");
- Map paramsMap = new HashMap<>();
- for (String param: params) {
- String paramsKeyAndValue[] = splitOnFirst(param, ':');
- if (paramsKeyAndValue.length != 2) {
- throw new InputEventAdapterException("Invalid parameters for content validation - " + param);
- }
- paramsMap.put(paramsKeyAndValue[0], paramsKeyAndValue[1]);
- }
-
- mqttBrokerConnectionConfiguration = new MQTTBrokerConnectionConfiguration(
- eventAdapterConfiguration.getProperties().get(MQTTEventAdapterConstants.ADAPTER_CONF_URL),
- eventAdapterConfiguration.getProperties().get(MQTTEventAdapterConstants.ADAPTER_CONF_USERNAME),
- eventAdapterConfiguration.getProperties().get(MQTTEventAdapterConstants.ADAPTER_CONF_SCOPES),
- eventAdapterConfiguration.getProperties().get(MQTTEventAdapterConstants.ADAPTER_CONF_DCR_URL),
- eventAdapterConfiguration.getProperties().get(MQTTEventAdapterConstants.ADAPTER_CONF_CLEAN_SESSION),
- keepAlive,
- eventAdapterConfiguration.getProperties().get(MQTTEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME),
- paramsMap
- );
-
-
- mqttAdapterListener = new MQTTAdapterListener(mqttBrokerConnectionConfiguration,
- eventAdapterConfiguration.getProperties().get(MQTTEventAdapterConstants.ADAPTER_MESSAGE_TOPIC),
- eventAdapterConfiguration.getProperties().get(MQTTEventAdapterConstants.ADAPTER_CONF_CLIENTID),
- eventAdapterListener, PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
-
- } catch (Throwable t) {
- throw new InputEventAdapterException(t.getMessage(), t);
- }
- }
-
- private String[] splitOnFirst(String str, char c) {
- int idx = str.indexOf(c);
- String head = str.substring(0, idx);
- String tail = str.substring(idx + 1);
- return new String[] { head, tail} ;
- }
-
- @Override
- public void testConnect() throws TestConnectionNotSupportedException {
- throw new TestConnectionNotSupportedException("not-supported");
- }
-
- @Override
- public void connect() {
- mqttAdapterListener.createConnection();
- }
-
- @Override
- public void disconnect() {
- //when mqtt and this feature both together then this method becomes a blocking method, Therefore
- // have used a thread to skip it.
- try {
- Thread thread = new Thread(new Runnable() {
- public void run() {
- if (mqttAdapterListener != null) {
- mqttAdapterListener.stopListener(eventAdapterConfiguration.getName());
- }
- }
- });
- thread.start();
- thread.join(2000);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
-
- @Override
- public void destroy() {
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof MQTTEventAdapter)) return false;
-
- MQTTEventAdapter that = (MQTTEventAdapter) o;
-
- if (!id.equals(that.id)) return false;
-
- return true;
- }
-
- @Override
- public int hashCode() {
- return id.hashCode();
- }
-
-
- @Override
- public boolean isEventDuplicatedInCluster() {
- return true;
- }
-
- @Override
- public boolean isPolling() {
- return true;
- }
-
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/MQTTEventAdapterFactory.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/MQTTEventAdapterFactory.java
deleted file mode 100644
index a8caa23b..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/MQTTEventAdapterFactory.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
-* Copyright (c) 2015, 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.
-*/
-package org.wso2.carbon.event.input.adapter.extensions.mqtt;
-
-import org.wso2.carbon.event.input.adapter.core.*;
-import org.wso2.carbon.event.input.adapter.extensions.mqtt.util.MQTTEventAdapterConstants;
-
-import java.util.*;
-
-/**
- * The mqtt event adapter factory class to create a mqtt input adapter
- */
-public class MQTTEventAdapterFactory extends InputEventAdapterFactory {
-
- private ResourceBundle resourceBundle = ResourceBundle.getBundle
- ("org.wso2.carbon.event.input.adapter.extensions.mqtt.i18n.Resources", Locale.getDefault());
-
- @Override
- public String getType() {
- return MQTTEventAdapterConstants.ADAPTER_TYPE_MQTT;
- }
-
- @Override
- public List getSupportedMessageFormats() {
- List supportInputMessageTypes = new ArrayList();
- supportInputMessageTypes.add(MessageType.JSON);
- return supportInputMessageTypes;
- }
-
- @Override
- public List getPropertyList() {
- List propertyList = new ArrayList();
-
- // set topic
- Property topicProperty = new Property(MQTTEventAdapterConstants.ADAPTER_MESSAGE_TOPIC);
- topicProperty.setDisplayName(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_MESSAGE_TOPIC));
- topicProperty.setRequired(true);
- topicProperty.setHint(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_MESSAGE_TOPIC_HINT));
- propertyList.add(topicProperty);
-
- //Broker Url
- Property brokerUrl = new Property(MQTTEventAdapterConstants.ADAPTER_CONF_URL);
- brokerUrl.setDisplayName(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_URL));
- brokerUrl.setRequired(true);
- brokerUrl.setHint(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_URL_HINT));
- propertyList.add(brokerUrl);
-
- //DCR endpoint details
- Property dcrUrl = new Property(MQTTEventAdapterConstants.ADAPTER_CONF_DCR_URL);
- dcrUrl.setDisplayName(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_DCR_URL));
- dcrUrl.setRequired(false);
- dcrUrl.setHint(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_DCR_URL_HINT));
- propertyList.add(dcrUrl);
-
- //Content Validator details
- Property contentValidator = new Property(MQTTEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME);
- contentValidator.setDisplayName(
- resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME));
- contentValidator.setRequired(false);
- contentValidator.setHint(
- resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME_HINT));
- contentValidator.setDefaultValue(Constants.DEFAULT);
- propertyList.add(contentValidator);
-
- //Content Validator Params details
- Property contentValidatorParams = new Property(MQTTEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS);
- contentValidatorParams.setDisplayName(
- resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS));
- contentValidatorParams.setRequired(false);
- contentValidatorParams.setHint(
- resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS_HINT));
- contentValidatorParams.setDefaultValue(Constants.MQTT_CONTENT_VALIDATION_DEFAULT_PARAMETERS);
- propertyList.add(contentValidatorParams);
-
- //Broker Username
- Property userName = new Property(MQTTEventAdapterConstants.ADAPTER_CONF_USERNAME);
- userName.setDisplayName(
- resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_USERNAME));
- userName.setRequired(false);
- userName.setHint(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_USERNAME_HINT));
- propertyList.add(userName);
-
- //Broker Required Scopes.
- Property scopes = new Property(MQTTEventAdapterConstants.ADAPTER_CONF_SCOPES);
- scopes.setDisplayName(
- resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_SCOPES));
- scopes.setRequired(false);
- scopes.setHint(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_SCOPES_HINT));
- propertyList.add(scopes);
-
- //Broker clear session
- Property clearSession = new Property(MQTTEventAdapterConstants.ADAPTER_CONF_CLEAN_SESSION);
- clearSession.setDisplayName(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_CLEAN_SESSION));
- clearSession.setRequired(false);
- clearSession.setOptions(new String[]{"true", "false"});
- clearSession.setDefaultValue("true");
- clearSession.setHint(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_CLEAN_SESSION_HINT));
- propertyList.add(clearSession);
-
- // set clientId
- Property clientId = new Property(MQTTEventAdapterConstants.ADAPTER_CONF_CLIENTID);
- clientId.setDisplayName(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_CLIENTID));
- clientId.setRequired(false);
- clientId.setHint(resourceBundle.getString(MQTTEventAdapterConstants.ADAPTER_CONF_CLIENTID_HINT));
- propertyList.add(clientId);
-
- return propertyList;
- }
-
- @Override
- public String getUsageTips() {
- return null;
- }
-
- @Override
- public InputEventAdapter createEventAdapter(InputEventAdapterConfiguration eventAdapterConfiguration,
- Map globalProperties) {
- return new MQTTEventAdapter(eventAdapterConfiguration, globalProperties);
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/exception/MQTTContentValidatorInitializationException.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/exception/MQTTContentValidatorInitializationException.java
deleted file mode 100644
index cca3e0df..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/exception/MQTTContentValidatorInitializationException.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2016, 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.
- */
-package org.wso2.carbon.event.input.adapter.extensions.mqtt.exception;
-
-/**
- * This exception will thrown when content validator is failed to intialiaze.
- */
-public class MQTTContentValidatorInitializationException extends RuntimeException {
- private String errMessage;
-
- public MQTTContentValidatorInitializationException(String msg, Exception nestedEx) {
- super(msg, nestedEx);
- setErrorMessage(msg);
- }
-
- public MQTTContentValidatorInitializationException(String message, Throwable cause) {
- super(message, cause);
- setErrorMessage(message);
- }
-
- public MQTTContentValidatorInitializationException(String msg) {
- super(msg);
- setErrorMessage(msg);
- }
-
- public MQTTContentValidatorInitializationException() {
- super();
- }
-
- public MQTTContentValidatorInitializationException(Throwable cause) {
- super(cause);
- }
-
- public String getErrorMessage() {
- return errMessage;
- }
-
- public void setErrorMessage(String errMessage) {
- this.errMessage = errMessage;
- }
-}
\ No newline at end of file
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTAdapterListener.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTAdapterListener.java
deleted file mode 100644
index b970c804..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTAdapterListener.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
-* Copyright (c) 2015, 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.
-*/
-package org.wso2.carbon.event.input.adapter.extensions.mqtt.util;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.ContentType;
-import org.apache.http.entity.StringEntity;
-import org.eclipse.paho.client.mqttv3.*;
-import org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
-import org.json.simple.parser.ParseException;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.core.ServerStatus;
-import org.wso2.carbon.event.input.adapter.core.InputEventAdapterListener;
-import org.wso2.carbon.event.input.adapter.core.exception.InputEventAdapterRuntimeException;
-import org.wso2.carbon.event.input.adapter.extensions.ContentInfo;
-import org.wso2.carbon.event.input.adapter.extensions.ContentValidator;
-import org.wso2.carbon.event.input.adapter.extensions.mqtt.Constants;
-import org.wso2.carbon.event.input.adapter.extensions.mqtt.exception.MQTTContentValidatorInitializationException;
-import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo;
-import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException;
-import org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.security.KeyManagementException;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.util.Map;
-
-public class MQTTAdapterListener implements MqttCallback, Runnable {
- private static final Log log = LogFactory.getLog(MQTTAdapterListener.class);
-
- private MqttClient mqttClient;
- private MqttConnectOptions connectionOptions;
- private boolean cleanSession;
- private int keepAlive;
-
- private MQTTBrokerConnectionConfiguration mqttBrokerConnectionConfiguration;
- private String mqttClientId;
- private String topic;
- private int tenantId;
- private boolean connectionSucceeded = false;
- ContentValidator contentValidator;
- Map contentValidationParams;
-
- private InputEventAdapterListener eventAdapterListener = null;
-
-
- public MQTTAdapterListener(MQTTBrokerConnectionConfiguration mqttBrokerConnectionConfiguration,
- String topic, String mqttClientId,
- InputEventAdapterListener inputEventAdapterListener, int tenantId) {
-
- if(mqttClientId == null || mqttClientId.trim().isEmpty()){
- mqttClientId = MqttClient.generateClientId();
- }
-
- this.mqttClientId = mqttClientId;
- this.mqttBrokerConnectionConfiguration = mqttBrokerConnectionConfiguration;
- this.cleanSession = mqttBrokerConnectionConfiguration.isCleanSession();
- this.keepAlive = mqttBrokerConnectionConfiguration.getKeepAlive();
- this.topic = topic;
- this.eventAdapterListener = inputEventAdapterListener;
- this.tenantId = tenantId;
-
- //SORTING messages until the server fetches them
- String temp_directory = System.getProperty("java.io.tmpdir");
- MqttDefaultFilePersistence dataStore = new MqttDefaultFilePersistence(temp_directory);
-
-
- try {
- // Construct the connection options object that contains connection parameters
- // such as cleanSession and LWT
- connectionOptions = new MqttConnectOptions();
- connectionOptions.setCleanSession(cleanSession);
- connectionOptions.setKeepAliveInterval(keepAlive);
-
- // Construct an MQTT blocking mode client
- mqttClient = new MqttClient(this.mqttBrokerConnectionConfiguration.getBrokerUrl(), this.mqttClientId,
- dataStore);
-
- // Set this wrapper as the callback handler
- mqttClient.setCallback(this);
- String contentValidatorClassName = this.mqttBrokerConnectionConfiguration.getContentValidatorClassName();
-
- if (contentValidatorClassName != null && contentValidatorClassName.equals(Constants.DEFAULT)) {
- contentValidator = new MQTTContentValidator();
- } else if (contentValidatorClassName != null && !contentValidatorClassName.isEmpty()) {
- try {
- Class extends ContentValidator> contentValidatorClass = Class.forName(contentValidatorClassName)
- .asSubclass(ContentValidator.class);
- contentValidator = contentValidatorClass.newInstance();
- } catch (ClassNotFoundException e) {
- throw new MQTTContentValidatorInitializationException(
- "Unable to find the class authorizer: " + contentValidatorClassName, e);
- } catch (InstantiationException e) {
- throw new MQTTContentValidatorInitializationException(
- "Unable to create an instance of :" + contentValidatorClassName, e);
- } catch (IllegalAccessException e) {
- throw new MQTTContentValidatorInitializationException("Access of the instance in not allowed.", e);
- }
- }
-
- contentValidationParams = mqttBrokerConnectionConfiguration.getContentValidatorParams();
-
- } catch (MqttException e) {
- log.error("Exception occurred while subscribing to MQTT broker at "
- + mqttBrokerConnectionConfiguration.getBrokerUrl());
- throw new InputEventAdapterRuntimeException(e);
- } catch (Throwable e) {
- log.error("Exception occurred while subscribing to MQTT broker at "
- + mqttBrokerConnectionConfiguration.getBrokerUrl());
- throw new InputEventAdapterRuntimeException(e);
- }
-
- }
-
- public void startListener() throws MqttException {
- if (this.mqttBrokerConnectionConfiguration.getBrokerUsername() != null && this.mqttBrokerConnectionConfiguration.getDcrUrl() != null) {
- String username = this.mqttBrokerConnectionConfiguration.getBrokerUsername();
- String dcrUrlString = this.mqttBrokerConnectionConfiguration.getDcrUrl();
- String scopes = this.mqttBrokerConnectionConfiguration.getBrokerScopes();
- //getJWT Client Parameters.
- if (dcrUrlString != null && !dcrUrlString.isEmpty()) {
- PrivilegedCarbonContext.startTenantFlow();
- PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(tenantId, true);
- PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(username);
- try {
- URL dcrUrl = new URL(dcrUrlString);
- HttpClient httpClient = MQTTUtil.getHttpClient(dcrUrl.getProtocol());
- HttpPost postMethod = new HttpPost(dcrUrlString);
- RegistrationProfile registrationProfile = new RegistrationProfile();
- registrationProfile.setCallbackUrl(Constants.EMPTY_STRING);
- registrationProfile.setGrantType(Constants.GRANT_TYPE);
- registrationProfile.setOwner(username);
- registrationProfile.setTokenScope(Constants.TOKEN_SCOPE);
- registrationProfile.setApplicationType(Constants.APPLICATION_TYPE);
- registrationProfile.setClientName(username + "_" + tenantId);
- String jsonString = registrationProfile.toJSON();
- StringEntity requestEntity = new StringEntity(jsonString, ContentType.APPLICATION_JSON);
- postMethod.setEntity(requestEntity);
- HttpResponse httpResponse = httpClient.execute(postMethod);
- String response = MQTTUtil.getResponseString(httpResponse);
- try {
- JSONParser jsonParser = new JSONParser();
- JSONObject jsonPayload = (JSONObject) jsonParser.parse(response);
- String clientId = (String) jsonPayload.get(Constants.CLIENT_ID);
- String clientSecret = (String) jsonPayload.get(Constants.CLIENT_SECRET);
- JWTClientManagerService jwtClientManagerService = MQTTUtil.getJWTClientManagerService();
- AccessTokenInfo accessTokenInfo = jwtClientManagerService.getJWTClient().getAccessToken(
- clientId, clientSecret, username, scopes);
- connectionOptions.setUserName(accessTokenInfo.getAccessToken());
- } catch (ParseException e) {
- String msg = "error occurred while parsing client credential payload";
- log.error(msg, e);
- } catch (JWTClientException e) {
- String msg = "error occurred while parsing the response from JWT Client";
- log.error(msg, e);
- }
- } catch (MalformedURLException e) {
- log.error("Invalid dcrUrl : " + dcrUrlString);
- } catch (KeyManagementException | NoSuchAlgorithmException | KeyStoreException | IOException e) {
- log.error("Failed to create an https connection.", e);
- } finally {
- PrivilegedCarbonContext.endTenantFlow();
- }
- }
- }
- // Connect to the MQTT server
- mqttClient.connect(connectionOptions);
-
- // Subscribe to the requested topic
- // The QoS specified is the maximum level that messages will be sent to the client at.
- // For instance if QoS 1 is specified, any messages originally published at QoS 2 will
- // be downgraded to 1 when delivering to the client but messages published at 1 and 0
- // will be received at the same level they were published at.
- mqttClient.subscribe(topic);
- }
-
- public void stopListener(String adapterName) {
- if (connectionSucceeded) {
- try {
- // Un-subscribe accordingly and disconnect from the MQTT server.
- if (!ServerStatus.getCurrentStatus().equals(ServerStatus.STATUS_SHUTTING_DOWN) || cleanSession) {
- mqttClient.unsubscribe(topic);
- }
- mqttClient.disconnect(3000);
- } catch (MqttException e) {
- log.error("Can not unsubscribe from the destination " + topic
- + " with the event adapter " + adapterName, e);
- }
- }
- //This is to stop all running reconnection threads
- connectionSucceeded = true;
- }
-
- @Override
- public void connectionLost(Throwable throwable) {
- log.warn("MQTT connection not reachable " + throwable);
- connectionSucceeded = false;
- new Thread(this).start();
- }
-
- @Override
- public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception {
- try {
- String msgText = mqttMessage.toString();
- if (log.isDebugEnabled()) {
- log.debug(msgText);
- }
- PrivilegedCarbonContext.startTenantFlow();
- PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(tenantId);
-
- if (log.isDebugEnabled()) {
- log.debug("Event received in MQTT Event Adapter - " + msgText);
- }
-
- if (contentValidator != null) {
- ContentInfo contentInfo;
- synchronized (contentValidationParams) {
- contentValidationParams.put(Constants.TOPIC, topic);
- contentInfo = contentValidator.validate(msgText,contentValidationParams);
- contentValidationParams.remove(Constants.TOPIC);
- contentValidationParams.remove(Constants.PAYLOAD);
- }
- if (contentInfo != null && contentInfo.isValidContent()) {
- eventAdapterListener.onEvent(contentInfo.getMsgText());
- }
- } else {
- eventAdapterListener.onEvent(msgText);
- }
- } finally {
- PrivilegedCarbonContext.endTenantFlow();
- }
- }
-
- @Override
- public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
-
- }
-
- @Override
- public void run() {
- while (!connectionSucceeded) {
- try {
- MQTTEventAdapterConstants.initialReconnectDuration = MQTTEventAdapterConstants.initialReconnectDuration
- * MQTTEventAdapterConstants.reconnectionProgressionFactor;
- Thread.sleep(MQTTEventAdapterConstants.initialReconnectDuration);
- startListener();
- connectionSucceeded = true;
- log.info("MQTT Connection successful");
- } catch (InterruptedException e) {
- log.error("Interruption occurred while waiting for reconnection", e);
- } catch (MqttException e) {
- log.error("MQTT Exception occurred when starting listener", e);
- }
- }
- }
-
- public void createConnection() {
- new Thread(this).start();
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTBrokerConnectionConfiguration.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTBrokerConnectionConfiguration.java
deleted file mode 100644
index 2bd038f4..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTBrokerConnectionConfiguration.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
-* Copyright (c) 2015, 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.
-*/
-package org.wso2.carbon.event.input.adapter.extensions.mqtt.util;
-
-import org.wso2.carbon.event.input.adapter.extensions.mqtt.Constants;
-import org.wso2.carbon.event.input.adapter.extensions.util.PropertyUtils;
-
-import java.util.Map;
-
-/**
- * This holds the configurations related to MQTT Broker.
- */
-public class MQTTBrokerConnectionConfiguration {
-
- private String brokerUsername = null;
- private String brokerScopes = null;
- private boolean cleanSession = true;
- private int keepAlive;
- private String brokerUrl;
- private String dcrUrl;
- private String contentValidatorClassName;
- private Map contentValidatorParams;
-
- public String getBrokerScopes() {
- return brokerScopes;
- }
-
- public void setBrokerScopes(String brokerScopes) {
- this.brokerScopes = brokerScopes;
- }
-
- public String getBrokerUsername() {
- return brokerUsername;
- }
-
- public void setBrokerUsername(String brokerUsername) {
- this.brokerUsername = brokerUsername;
- }
-
- public void setCleanSession(boolean cleanSession) {
- this.cleanSession = cleanSession;
- }
-
-
- public boolean isCleanSession() {
- return cleanSession;
- }
-
- public String getBrokerUrl() {
- return brokerUrl;
- }
-
- public void setBrokerUrl(String brokerUrl) {
- this.brokerUrl = brokerUrl;
- }
-
- public String getDcrUrl() {
- return dcrUrl;
- }
-
- public void setDcrUrl(String dcrUrl) {
- this.dcrUrl = dcrUrl;
- }
-
- public int getKeepAlive() {
- return keepAlive;
- }
-
- public void setKeepAlive(int keepAlive) {
- this.keepAlive = keepAlive;
- }
-
- public String getContentValidatorClassName() {
- return contentValidatorClassName;
- }
-
- public void setContentValidatorClassName(String contentValidatorClassName) {
- this.contentValidatorClassName = contentValidatorClassName;
- }
-
- public Map getContentValidatorParams() {
- return contentValidatorParams;
- }
-
- public void setContentValidatorParams(Map contentValidatorParams) {
- this.contentValidatorParams = contentValidatorParams;
- }
-
- public MQTTBrokerConnectionConfiguration(String brokerUrl, String brokerUsername, String brokerScopes,
- String dcrUrl, String cleanSession, int keepAlive,
- String contentValidatorClassName, Map contentValidatorParams) {
- this.brokerUsername = brokerUsername;
- this.brokerScopes = brokerScopes;
- if (brokerScopes == null) {
- this.brokerScopes = Constants.EMPTY_STRING;
- }
- this.brokerUrl = PropertyUtils.replaceMqttProperty(brokerUrl);
- this.dcrUrl = PropertyUtils.replaceMqttProperty(dcrUrl);
- this.contentValidatorClassName = contentValidatorClassName;
- if (cleanSession != null) {
- this.cleanSession = Boolean.parseBoolean(cleanSession);
- }
- this.keepAlive = keepAlive;
- if (contentValidatorParams != null) {
- this.contentValidatorParams = contentValidatorParams;
- }
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTContentValidator.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTContentValidator.java
deleted file mode 100644
index ba324b84..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTContentValidator.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-* Copyright (c) 2016, 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.
-*/
-
-package org.wso2.carbon.event.input.adapter.extensions.mqtt.util;
-
-import com.jayway.jsonpath.JsonPath;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
-import org.json.simple.parser.ParseException;
-import org.wso2.carbon.event.input.adapter.extensions.ContentInfo;
-import org.wso2.carbon.event.input.adapter.extensions.ContentValidator;
-import org.wso2.carbon.event.input.adapter.extensions.mqtt.Constants;
-
-import java.util.Map;
-
-public class MQTTContentValidator implements ContentValidator {
- private static String JSON_ARRAY_START_CHAR = "[";
- private static final Log log = LogFactory.getLog(MQTTContentValidator.class);
-
- @Override
- public ContentInfo validate(String msgPayload, Map params) {
- String topic = params.get(Constants.TOPIC);
- String topics[] = topic.split("/");
-
- String msg = msgPayload;
- String deviceIdJsonPath = params.get(Constants.DEVICE_ID_JSON_PATH);
- String deviceIdInTopicHierarchyLevel = params.get(Constants.DEVICE_ID_TOPIC_HIERARCHY_INDEX);
- int deviceIdInTopicHierarchyLevelIndex = 0;
- if (deviceIdInTopicHierarchyLevel != null && !deviceIdInTopicHierarchyLevel.isEmpty()) {
- deviceIdInTopicHierarchyLevelIndex = Integer.parseInt(deviceIdInTopicHierarchyLevel);
- }
- String deviceIdFromTopic = topics[deviceIdInTopicHierarchyLevelIndex];
- boolean status;
- if (msg.startsWith(JSON_ARRAY_START_CHAR)) {
- status = processMultipleEvents(msg, deviceIdFromTopic, deviceIdJsonPath);
- } else {
- status = processSingleEvent(msg, deviceIdFromTopic, deviceIdJsonPath);
- }
- return new ContentInfo(status, msg);
- }
-
- private boolean processSingleEvent(String msg, String deviceIdFromTopic, String deviceIdJsonPath) {
- Object res = JsonPath.read(msg, deviceIdJsonPath);
- String deviceIdFromContent = (res != null) ? res.toString() : "";
- if (deviceIdFromContent.equals(deviceIdFromTopic)) {
- return true;
- }
- return false;
- }
-
- private boolean processMultipleEvents(String msg, String deviceIdFromTopic, String deviceIdJsonPath) {
- try {
- JSONParser jsonParser = new JSONParser();
- JSONArray jsonArray = (JSONArray) jsonParser.parse(msg);
- boolean status = false;
- for (int i = 0; i < jsonArray.size(); i++) {
- status = processSingleEvent(jsonArray.get(i).toString(), deviceIdFromTopic, deviceIdJsonPath);
- if (!status) {
- return status;
- }
- }
- return status;
- } catch (ParseException e) {
- log.error("Invalid input " + msg, e);
- return false;
- }
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTEventAdapterConstants.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTEventAdapterConstants.java
deleted file mode 100644
index 7fbca18f..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTEventAdapterConstants.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2015, 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.
-*/
-package org.wso2.carbon.event.input.adapter.extensions.mqtt.util;
-
-
-/**
- * This holds the constants related to mqtt event adapter.
- */
-public class MQTTEventAdapterConstants {
-
- public static final String ADAPTER_TYPE_MQTT = "oauth-mqtt";
- public static final String ADAPTER_CONF_URL = "url";
- public static final String ADAPTER_CONF_USERNAME = "username";
- public static final String ADAPTER_CONF_USERNAME_HINT = "username.hint";
- public static final String ADAPTER_CONF_SCOPES = "scopes";
- public static final String ADAPTER_CONF_SCOPES_HINT = "scopes.hint";
- public static final String ADAPTER_CONF_URL_HINT = "url.hint";
- public static final String ADAPTER_CONF_DCR_URL = "dcrUrl";
- public static final String ADAPTER_CONF_DCR_URL_HINT = "dcrUrl.hint";
- public static final String ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME = "contentValidation";
- public static final String ADAPTER_CONF_CONTENT_VALIDATOR_CLASSNAME_HINT = "contentValidation.hint";
- public static final String ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS = "contentValidationParams";
- public static final String ADAPTER_CONF_CONTENT_VALIDATOR_PARAMS_HINT = "contentValidationParams.hint";
- public static final String ADAPTER_MESSAGE_TOPIC = "topic";
- public static final String ADAPTER_MESSAGE_TOPIC_HINT = "topic.hint";
- public static final String ADAPTER_CONF_CLIENTID = "clientId";
- public static final String ADAPTER_CONF_CLIENTID_HINT = "clientId.hint";
- public static final String ADAPTER_CONF_CLEAN_SESSION = "cleanSession";
- public static final String ADAPTER_CONF_CLEAN_SESSION_HINT = "cleanSession.hint";
- public static final String ADAPTER_CONF_KEEP_ALIVE = "keepAlive";
- public static final int ADAPTER_CONF_DEFAULT_KEEP_ALIVE = 60000;
-
- public static int initialReconnectDuration = 10000;
- public static final int reconnectionProgressionFactor = 2;
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTUtil.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTUtil.java
deleted file mode 100644
index 29bae358..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/MQTTUtil.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2016, 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.
- */
-
-package org.wso2.carbon.event.input.adapter.extensions.mqtt.util;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
-import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
-import org.apache.http.conn.ssl.SSLContextBuilder;
-import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.util.EntityUtils;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.security.KeyManagementException;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-
-/**
- * This is the utility class that is used for MQTT input adapater.
- */
-public class MQTTUtil {
- private static final String HTTPS_PROTOCOL = "https";
- private static final Log log = LogFactory.getLog(MQTTUtil.class);
- /**
- * Return a http client instance
- *
- * @param protocol- service endpoint protocol http/https
- * @return
- */
- public static HttpClient getHttpClient(String protocol)
- throws IOException, KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
- HttpClient httpclient;
- if (HTTPS_PROTOCOL.equals(protocol)) {
- SSLContextBuilder builder = new SSLContextBuilder();
- builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
- SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(builder.build());
- httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();
- } else {
- httpclient = HttpClients.createDefault();
- }
- return httpclient;
- }
-
- public static String getResponseString(HttpResponse httpResponse) throws IOException {
- BufferedReader br = null;
- try {
- br = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
- String readLine;
- String response = "";
- while (((readLine = br.readLine()) != null)) {
- response += readLine;
- }
- return response;
- } finally {
- EntityUtils.consumeQuietly(httpResponse.getEntity());
- if (br != null) {
- try {
- br.close();
- } catch (IOException e) {
- log.warn("Error while closing the connection! " + e.getMessage());
- }
- }
- }
- }
-
- public static JWTClientManagerService getJWTClientManagerService() {
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- JWTClientManagerService jwtClientManagerService =
- (JWTClientManagerService) ctx.getOSGiService(JWTClientManagerService.class, null);
- if (jwtClientManagerService == null) {
- String msg = "JWT management service has not initialized.";
- log.error(msg);
- throw new IllegalStateException(msg);
- }
- return jwtClientManagerService;
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/RegistrationProfile.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/RegistrationProfile.java
deleted file mode 100644
index fec69d61..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/mqtt/util/RegistrationProfile.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.wso2.carbon.event.input.adapter.extensions.mqtt.util;
-
-/**
- * This class represents the data that are required to register
- * the oauth application.
- */
-public class RegistrationProfile {
-
- private String callbackUrl;
- private String clientName;
- private String tokenScope;
- private String owner;
- private String grantType;
- private String applicationType;
-
- private static final String TAG = RegistrationProfile.class.getSimpleName();
-
- public String getCallbackUrl() {
- return callbackUrl;
- }
-
- public void setCallbackUrl(String callBackUrl) {
- this.callbackUrl = callBackUrl;
- }
-
- public String getClientName() {
- return clientName;
- }
-
- public void setClientName(String clientName) {
- this.clientName = clientName;
- }
-
- public String getTokenScope() {
- return tokenScope;
- }
-
- public void setTokenScope(String tokenScope) {
- this.tokenScope = tokenScope;
- }
-
- public String getOwner() {
- return owner;
- }
-
- public void setOwner(String owner) {
- this.owner = owner;
- }
-
- public String getGrantType() {
- return grantType;
- }
-
- public void setGrantType(String grantType) {
- this.grantType = grantType;
- }
-
- public String getApplicationType() {
- return applicationType;
- }
-
- public void setApplicationType(String applicationType) {
- this.applicationType = applicationType;
- }
-
- public String toJSON() {
- String jsonString =
- "{\"callbackUrl\": \"" + callbackUrl + "\",\"clientName\": \"" + clientName + "\", \"tokenScope\": " +
- "\"" + tokenScope + "\", \"owner\": \"" + owner + "\"," + "\"grantType\": \"" + grantType +
- "\", \"saasApp\" :false }\n";
- return jsonString;
- }
-}
\ No newline at end of file
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/util/PropertyUtils.java b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/util/PropertyUtils.java
deleted file mode 100644
index 2b97363f..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/java/org/wso2/carbon/event/input/adapter/extensions/util/PropertyUtils.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 2016, 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.
-*/
-
-package org.wso2.carbon.event.input.adapter.extensions.util;
-
-import org.wso2.carbon.base.ServerConfiguration;
-import org.wso2.carbon.core.util.Utils;
-
-public class PropertyUtils {
- private static final String MQTT_PORT = "\\$\\{mqtt.broker.port\\}";
- private static final String MQTT_BROKER_HOST = "\\$\\{mqtt.broker.host\\}";
- private static final String CARBON_CONFIG_PORT_OFFSET = "Ports.Offset";
- private static final String DEFAULT_CARBON_SERVER_HOST_PROPERTY = "server.host";
- private static final int CARBON_DEFAULT_PORT_OFFSET = 0;
- private static final int DEFAULT_MQTT_PORT = 1883;
-
- //This method is only used if the mb features are within DAS.
- public static String replaceMqttProperty (String urlWithPlaceholders) {
- urlWithPlaceholders = Utils.replaceSystemProperty(urlWithPlaceholders);
- urlWithPlaceholders = urlWithPlaceholders.replaceAll(MQTT_PORT, "" + (DEFAULT_MQTT_PORT + getPortOffset()));
- urlWithPlaceholders = urlWithPlaceholders.replaceAll(MQTT_BROKER_HOST, System.getProperty(DEFAULT_CARBON_SERVER_HOST_PROPERTY,
- "localhost"));
- return urlWithPlaceholders;
- }
-
- private static int getPortOffset() {
- ServerConfiguration carbonConfig = ServerConfiguration.getInstance();
- String portOffset = System.getProperty("portOffset",
- carbonConfig.getFirstProperty(CARBON_CONFIG_PORT_OFFSET));
- try {
- if ((portOffset != null)) {
- return Integer.parseInt(portOffset.trim());
- } else {
- return CARBON_DEFAULT_PORT_OFFSET;
- }
- } catch (NumberFormatException e) {
- return CARBON_DEFAULT_PORT_OFFSET;
- }
- }
-}
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/resources/org/wso2/carbon/event/input/adapter/extensions/http/i18n/Resources.properties b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/resources/org/wso2/carbon/event/input/adapter/extensions/http/i18n/Resources.properties
deleted file mode 100644
index de84fc01..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/resources/org/wso2/carbon/event/input/adapter/extensions/http/i18n/Resources.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# Copyright (c) 2005-2014, 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.
-#
-
-transports=Transport(s)
-http.usage.tips_prefix=Following url formats are used to receive eventsFor super tenants: http://localhost:
-http.usage.tips_mid1=/endpoints/<event_receiver_name> https://localhost:
-http.usage.tips_mid2=/endpoints/<event_receiver_name>For other tenants: http://localhost:
-http.usage.tips_mid3=/endpoints/t/<tenant_domain>/<event_receiver_name> https://localhost:
-http.usage.tips_postfix=/endpoints/t/<tenant_domain>/<event_receiver_name>
-tokenValidationEndpointUrl=tokenEndpointUrl
-tokenValidationEndpointUrl.hint=OAUTH Token Validation Endpoint
-username=username
-username.hint=username of the user to connect to the admin services
-password=password
-password.hint=password of the user to connect to the admin services.
-maximumTotalHttpConnection=maximumTotalHttpConnection
-maximumTotalHttpConnection.hint=Maximum Total connection to be made with the endpoint
-maximumHttpConnectionPerHost=maximumHttpConnectionPerHost
-maximumHttpConnectionPerHost.hint=Maximum Http connection per host.
-contentValidation=contentValidation
-contentValidation.hint=Class Name of the content Validation or 'default' to set default class, required to implement (if required)
-contentValidationParams=contentValidationParams
-contentValidationParams.hint=ContentValidationParams, comma seperated. (if required)
\ No newline at end of file
diff --git a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/resources/org/wso2/carbon/event/input/adapter/extensions/mqtt/i18n/Resources.properties b/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/resources/org/wso2/carbon/event/input/adapter/extensions/mqtt/i18n/Resources.properties
deleted file mode 100644
index 70d4019e..00000000
--- a/modules/iot-extensions/components/das-extensions/org.wso2.carbon.event.input.adapter.extensions/src/main/resources/org/wso2/carbon/event/input/adapter/extensions/mqtt/i18n/Resources.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# Copyright (c) 2015, 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.
-#
-
-topic=Topic
-topic.hint=Topic subscribed
-clientId=Client Id
-clientId.hint=client identifier is used by the server to identify a client when it reconnects, It used for durable subscriptions or reliable delivery of messages is required.
-url=Broker Url
-username=Username
-username.hint=Username of the broker (if required)
-scopes=Scopes
-scopes.hint=Scopes required to connect to broker (if required)
-dcrUrl=dcrUrl
-dcrUrl.hint=dynamic client registration endpoint URL to create application (if required) eg: https://localhost:9443/dynamic-client-web/register
-contentValidation=contentValidation
-contentValidation.hint=Class Name of the content Validation or 'default' to set default class, required to implement (if required)
-contentValidationParams=contentValidationParams
-contentValidationParams.hint=ContentValidationParams, comma seperated. (if required)
-url.hint=MQTT broker url tcp://localhost:1883
-cleanSession=Clean Session
-cleanSession.hint=Persist topic subscriptions and ack positions across client sessions
-keepAlive=Keep Alive (In seconds)
-events.duplicated.in.cluster=Is events duplicated in cluster
\ No newline at end of file
diff --git a/modules/iot-extensions/components/das-extensions/pom.xml b/modules/iot-extensions/components/das-extensions/pom.xml
index f0e16beb..6faa1963 100644
--- a/modules/iot-extensions/components/das-extensions/pom.xml
+++ b/modules/iot-extensions/components/das-extensions/pom.xml
@@ -33,7 +33,6 @@
http://wso2.org
- org.wso2.carbon.event.input.adapter.extensions
org.wso2.carbon.event.output.adapter.extensions.ui
org.wso2.carbon.event.output.adapter.extensions.ui.endpoint
diff --git a/modules/iot-extensions/features/das-extensions-feature/org.wso2.carbon.event.adapter.extensions.server.feature/pom.xml b/modules/iot-extensions/features/das-extensions-feature/org.wso2.carbon.event.adapter.extensions.server.feature/pom.xml
index 1d761685..3127110d 100644
--- a/modules/iot-extensions/features/das-extensions-feature/org.wso2.carbon.event.adapter.extensions.server.feature/pom.xml
+++ b/modules/iot-extensions/features/das-extensions-feature/org.wso2.carbon.event.adapter.extensions.server.feature/pom.xml
@@ -35,10 +35,6 @@
This feature contains the bundles required for Input Event Adapter functionality
-
- org.wso2.iot
- org.wso2.carbon.event.input.adapter.extensions
-
org.wso2.iot
org.wso2.carbon.event.output.adapter.extensions.ui
@@ -93,16 +89,12 @@
-
- org.wso2.iot:org.wso2.carbon.event.input.adapter.extensions:${carbon.iot.device.mgt.version}
-
org.wso2.iot:org.wso2.carbon.event.output.adapter.extensions.ui:${carbon.iot.device.mgt.version}
org.wso2.carbon.core.server:${carbon.kernel.version}
- org.wso2.carbon.identity.jwt.client.extension:${carbon.device.mgt.version}
diff --git a/pom.xml b/pom.xml
index 3a1acb6a..a3f9434f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1025,11 +1025,6 @@
org.wso2.carbon.event.output.adapter.core
${carbon.analytics.common.version}
-
- org.wso2.carbon.analytics-common
- org.wso2.carbon.event.input.adapter.core
- ${carbon.analytics.common.version}
-
org.wso2.carbon.analytics-common
org.wso2.carbon.event.stream.core
@@ -1040,12 +1035,6 @@
org.wso2.carbon.databridge.commons
${carbon.analytics.common.version}
-
-
- org.wso2.iot
- org.wso2.carbon.event.input.adapter.extensions
- ${carbon.iot.device.mgt.version}
-
org.wso2.iot
org.wso2.carbon.event.output.adapter.extensions.ui