diff --git a/.gitignore b/.gitignore index 63fbc681..dca84b42 100644 --- a/.gitignore +++ b/.gitignore @@ -31,7 +31,3 @@ target *.iml .idea .DS_Store - -# Ignore .car and Database files -*.car -*.h2.db diff --git a/modules/samples/connectedcup/component/controller/pom.xml b/modules/samples/connectedcup/component/controller/pom.xml deleted file mode 100644 index 82102873..00000000 --- a/modules/samples/connectedcup/component/controller/pom.xml +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - device-mgt-iot-connectedcup - org.wso2.carbon.devicemgt-plugins - 1.9.2-SNAPSHOT - ../pom.xml - - - - 4.0.0 - org.coffeeking.controller.service - 1.9.2-SNAPSHOT - war - WSO2 IoTS(Device Types) - Connected Cup Controller Service - WSO2 IoTS(Device Types) - Connected Cup Controller Service - http://wso2.org - - - - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.common - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.core - - - org.apache.axis2.wso2 - axis2-client - - - - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.analytics - - - org.apache.axis2.wso2 - axis2-client - - - - - - org.wso2.carbon.devicemgt - org.wso2.carbon.certificate.mgt.core - - - - - - org.apache.cxf - cxf-rt-frontend-jaxws - - - org.apache.cxf - cxf-rt-frontend-jaxrs - - - org.apache.cxf - cxf-rt-transports-http - - - - - org.eclipse.paho - mqtt-client - - - - - org.apache.httpcomponents - httpasyncclient - 4.1 - - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot - - - - - - org.codehaus.jackson - jackson-core-asl - - - org.codehaus.jackson - jackson-jaxrs - - - javax - javaee-web-api - - - javax.ws.rs - jsr311-api - - - commons-httpclient.wso2 - commons-httpclient - - - - org.wso2.carbon - org.wso2.carbon.utils - - - org.bouncycastle.wso2 - bcprov-jdk15on - - - org.wso2.carbon - org.wso2.carbon.user.api - - - org.wso2.carbon - org.wso2.carbon.queuing - - - org.wso2.carbon - org.wso2.carbon.base - - - org.apache.axis2.wso2 - axis2 - - - org.igniterealtime.smack.wso2 - smack - - - org.igniterealtime.smack.wso2 - smackx - - - jaxen - jaxen - - - commons-fileupload.wso2 - commons-fileupload - - - org.apache.ant.wso2 - ant - - - org.apache.ant.wso2 - ant - - - commons-httpclient.wso2 - commons-httpclient - - - org.eclipse.equinox - javax.servlet - - - org.wso2.carbon - org.wso2.carbon.registry.api - - - - - - org.igniterealtime.smack.wso2 - smack - - - org.igniterealtime.smack.wso2 - smackx - - - org.wso2.carbon.devicemgt - org.wso2.carbon.apimgt.annotations - - - org.wso2.carbon.devicemgt-plugins - org.coffeeking.connectedcup.plugin - - - - org.json.wso2 - json - - - - - - - ${basedir}/src/main/java - - - - - maven-compiler-plugin - - 1.7 - 1.7 - - 2.3.2 - - - maven-war-plugin - - connectedcup - - - - - - \ No newline at end of file diff --git a/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/ConnectedCupControllerService.java b/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/ConnectedCupControllerService.java deleted file mode 100644 index b9365f4d..00000000 --- a/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/ConnectedCupControllerService.java +++ /dev/null @@ -1,179 +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.coffeeking.controller.service; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.coffeeking.connectedcup.plugin.constants.ConnectedCupConstants; -import org.coffeeking.controller.service.dto.DeviceJSON; -import org.coffeeking.controller.service.transport.ConnectedCupMQTTConnector; -import org.coffeeking.controller.service.util.ConnectedCupServiceUtils; -import org.json.JSONObject; -import org.wso2.carbon.apimgt.annotations.api.API; -import org.wso2.carbon.apimgt.annotations.device.DeviceType; -import org.wso2.carbon.apimgt.annotations.device.feature.Feature; -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import org.wso2.carbon.device.mgt.common.DeviceManagementException; -import org.wso2.carbon.device.mgt.iot.DeviceValidator; -import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException; -import org.wso2.carbon.device.mgt.iot.sensormgt.SensorDataManager; -import org.wso2.carbon.device.mgt.iot.sensormgt.SensorRecord; -import org.wso2.carbon.device.mgt.iot.transport.TransportHandlerException; - -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.util.Calendar; - -@API( name="connectedcup", version="1.0.0", context="/connectedcup") -@DeviceType( value = "connectedcup") -public class ConnectedCupControllerService { - - private static Log log = LogFactory.getLog(ConnectedCupControllerService.class); - private static final String SUPER_TENANT = "carbon.super"; - private ConnectedCupMQTTConnector connectedCupMQTTConnector; - - - /** - * @param deviceId - * @param owner - */ - @Path("controller/cup/coffeelevel") - @GET - public SensorRecord readCoffeeLevel(@HeaderParam("owner") String owner, - @HeaderParam("deviceId") String deviceId, - @Context HttpServletResponse response) { - SensorRecord sensorRecord = null; - DeviceValidator deviceValidator = new DeviceValidator(); - try { - if (!deviceValidator.isExist(owner, SUPER_TENANT, new DeviceIdentifier( - deviceId, ConnectedCupConstants.DEVICE_TYPE))) { - response.setStatus(Response.Status.UNAUTHORIZED.getStatusCode()); - } - } catch (DeviceManagementException e) { - response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); - } - - - if (log.isDebugEnabled()) { - log.debug("Sending request to read liquid level value of device [" + deviceId + "] via MQTT"); - } - - try { - String mqttResource = ConnectedCupConstants.LEVEL_CONTEXT.replace("/", ""); - connectedCupMQTTConnector.publishDeviceData(owner, deviceId, mqttResource, ""); - - sensorRecord = SensorDataManager.getInstance().getSensorRecord(deviceId, - ConnectedCupConstants.SENSOR_LEVEL); - } catch ( DeviceControllerException | TransportHandlerException e ) { - response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); - } - - response.setStatus(Response.Status.OK.getStatusCode()); - return sensorRecord; - } - - - - @Path("controller/cup/temperature") - @GET - public SensorRecord readTemperature(@HeaderParam("owner") String owner, - @HeaderParam("deviceId") String deviceId, - @Context HttpServletResponse response) { - SensorRecord sensorRecord = null; - - DeviceValidator deviceValidator = new DeviceValidator(); - try { - if (!deviceValidator.isExist(owner, SUPER_TENANT, - new DeviceIdentifier(deviceId, ConnectedCupConstants.DEVICE_TYPE))) { - response.setStatus(Response.Status.UNAUTHORIZED.getStatusCode()); - } - } catch (DeviceManagementException e) { - response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); - } - - if (log.isDebugEnabled()) { - log.debug("Sending request to read connected cup temperature of device " + - "[" + deviceId + "] via MQTT"); - } - - try { - String mqttResource = ConnectedCupConstants.TEMPERATURE_CONTEXT.replace("/", ""); - connectedCupMQTTConnector.publishDeviceData(owner, deviceId, mqttResource, ""); - - sensorRecord = SensorDataManager.getInstance().getSensorRecord(deviceId, - ConnectedCupConstants.SENSOR_TEMPERATURE); - } catch ( DeviceControllerException | TransportHandlerException e) { - response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); - } - - response.setStatus(Response.Status.OK.getStatusCode()); - return sensorRecord; - } - /** - * @param dataMsg - * @param response - */ - @Path("controller/push_temperature") - @POST - @Consumes(MediaType.APPLICATION_JSON) - public void pushTemperatureData(final DeviceJSON dataMsg, - @Context HttpServletResponse response) { - String deviceId = dataMsg.deviceId; - float temperature = dataMsg.value; - - SensorDataManager.getInstance().setSensorRecord(deviceId, ConnectedCupConstants.SENSOR_TEMPERATURE, - String.valueOf(temperature), - Calendar.getInstance().getTimeInMillis()); - - if (!ConnectedCupServiceUtils.publishToDAS(dataMsg.owner, dataMsg.deviceId, dataMsg.value)) { - response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); - } - - } - - /** - * @param dataMsg - * @param response - */ - @Path("controller/push_level") - @POST - @Consumes(MediaType.APPLICATION_JSON) - public void pushLevelData(final DeviceJSON dataMsg, - @Context HttpServletResponse response) { - String deviceId = dataMsg.deviceId; - float temperature = dataMsg.value; - - SensorDataManager.getInstance().setSensorRecord(deviceId, ConnectedCupConstants.SENSOR_LEVEL, - String.valueOf(temperature), - Calendar.getInstance().getTimeInMillis()); - - if (!ConnectedCupServiceUtils.publishToDAS(dataMsg.owner, dataMsg.deviceId, dataMsg.value)) { - response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); - } - - } -} \ No newline at end of file diff --git a/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/dto/DeviceJSON.java b/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/dto/DeviceJSON.java deleted file mode 100644 index 806de48d..00000000 --- a/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/dto/DeviceJSON.java +++ /dev/null @@ -1,35 +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.coffeeking.controller.service.dto; - -import org.codehaus.jackson.annotate.JsonIgnoreProperties; - -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement -@JsonIgnoreProperties(ignoreUnknown = true) -public class DeviceJSON { - @XmlElement(required = true) public String owner; - @XmlElement(required = true) public String deviceId; - @XmlElement(required = true) public String reply; - @XmlElement public Long time; - @XmlElement public String key; - @XmlElement public float value; -} diff --git a/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/exception/ConnectedCupException.java b/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/exception/ConnectedCupException.java deleted file mode 100644 index 1c6caf78..00000000 --- a/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/exception/ConnectedCupException.java +++ /dev/null @@ -1,31 +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.coffeeking.controller.service.exception; - -public class ConnectedCupException extends Exception { - private static final long serialVersionUID = 118512086957330189L; - - public ConnectedCupException(String errorMessage) { - super(errorMessage); - } - - public ConnectedCupException(String errorMessage, Throwable throwable) { - super(errorMessage, throwable); - } -} diff --git a/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/transport/ConnectedCupMQTTConnector.java b/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/transport/ConnectedCupMQTTConnector.java deleted file mode 100644 index a4d0abcb..00000000 --- a/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/transport/ConnectedCupMQTTConnector.java +++ /dev/null @@ -1,187 +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.coffeeking.controller.service.transport; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.coffeeking.connectedcup.plugin.constants.ConnectedCupConstants; -import org.eclipse.paho.client.mqttv3.MqttException; -import org.eclipse.paho.client.mqttv3.MqttMessage; -import org.wso2.carbon.device.mgt.iot.config.server.DeviceManagementConfigurationManager; -import org.wso2.carbon.device.mgt.iot.controlqueue.mqtt.MqttConfig; -import org.wso2.carbon.device.mgt.iot.transport.TransportHandlerException; -import org.wso2.carbon.device.mgt.iot.transport.mqtt.MQTTTransportHandler; - -import java.io.File; -import java.nio.charset.StandardCharsets; -import java.util.UUID; - -@SuppressWarnings("no JAX-WS annotation") -public class ConnectedCupMQTTConnector extends MQTTTransportHandler { - private static Log log = LogFactory.getLog(ConnectedCupMQTTConnector.class); - - private static String serverName = DeviceManagementConfigurationManager.getInstance(). - getDeviceManagementServerInfo().getName(); - - private static String subscribeTopic = serverName + File.separator + "+" + File.separator + - ConnectedCupConstants.DEVICE_TYPE + File.separator + "+" + File.separator - + "connected_publisher"; - - private static String iotServerSubscriber = UUID.randomUUID().toString().substring(0, 5); - - private ConnectedCupMQTTConnector() { - super(iotServerSubscriber, ConnectedCupConstants.DEVICE_TYPE, - MqttConfig.getInstance().getMqttQueueEndpoint(), subscribeTopic); - } - - @Override - public void connect() { - Runnable connector = new Runnable() { - public void run() { - while (!isConnected()) { - try { - connectToQueue(); - subscribeToQueue(); - } catch (TransportHandlerException e) { - log.warn("Connection/Subscription to MQTT Broker at: " + mqttBrokerEndPoint + " failed"); - try { - Thread.sleep(timeoutInterval); - } catch (InterruptedException ex) { - log.error("MQTT-Subscriber: Thread Sleep Interrupt Exception.", ex); - } - } - } - } - }; - - Thread connectorThread = new Thread(connector); - connectorThread.setDaemon(true); - connectorThread.start(); - } - - - - @Override - public void publishDeviceData(String... publishData) throws TransportHandlerException { - if (publishData.length != 4) { - String errorMsg = "Incorrect number of arguments received to SEND-MQTT Message. " + - "Need to be [owner, deviceId, resource{BULB/TEMP}, state{ON/OFF or null}]"; - log.error(errorMsg); - throw new TransportHandlerException(errorMsg); - } - - String deviceOwner = publishData[0]; - String deviceId = publishData[1]; - String resource = publishData[2]; - String state = publishData[3]; - - MqttMessage pushMessage = new MqttMessage(); - String publishTopic = - serverName + File.separator + deviceOwner + File.separator + - ConnectedCupConstants.DEVICE_TYPE + File.separator + deviceId; - - try { - - String actualMessage = resource + ":" + state; - - pushMessage.setPayload(actualMessage.getBytes(StandardCharsets.UTF_8)); - pushMessage.setQos(DEFAULT_MQTT_QUALITY_OF_SERVICE); - pushMessage.setRetained(false); - - publishToQueue(publishTopic, pushMessage); - - } catch (Exception e) { - String errorMsg = "Preparing Secure payload failed for device - [" + deviceId + "] of owner - " + - "[" + deviceOwner + "]."; - log.error(errorMsg); - throw new TransportHandlerException(errorMsg, e); - } - } - - - @Override - public void processIncomingMessage(MqttMessage mqttMessage, String... strings) throws TransportHandlerException { - String topic = strings[0]; - - String ownerAndId = topic.replace("wso2" + File.separator + "iot" + File.separator, ""); - ownerAndId = ownerAndId.replace(File.separator + ConnectedCupConstants.DEVICE_TYPE + File.separator, ":"); - ownerAndId = ownerAndId.replace(File.separator + "connectedcup_publisher", ""); - - String owner = ownerAndId.split(":")[0]; - String deviceId = ownerAndId.split(":")[1]; - - String[] messageData = mqttMessage.toString().split(":"); - - log.info("Received MQTT message for OWNER: " + owner + " DEVICE.ID: " + deviceId + " | Command: " + - messageData[0] +" " + messageData[1] ); - - - } - - - @Override - public void disconnect() { - Runnable stopConnection = new Runnable() { - public void run() { - while (isConnected()) { - try { - closeConnection(); - } catch (MqttException e) { - if (log.isDebugEnabled()) { - log.warn("Unable to 'STOP' MQTT connection at broker at: " + mqttBrokerEndPoint - + " for device-type - " + ConnectedCupConstants.DEVICE_TYPE, e); - } - - try { - Thread.sleep(timeoutInterval); - } catch (InterruptedException e1) { - log.error("MQTT-Terminator: Thread Sleep Interrupt Exception at device-type - " + - ConnectedCupConstants.DEVICE_TYPE, e1); - } - } - } - } - }; - - Thread terminatorThread = new Thread(stopConnection); - terminatorThread.setDaemon(true); - terminatorThread.start(); - } - - @Override - public void publishDeviceData() { - // nothing to do - } - - - @Override - public void publishDeviceData(MqttMessage publishData) throws TransportHandlerException { - // nothing to do - } - - @Override - public void processIncomingMessage() { - // nothing to do - } - - @Override - public void processIncomingMessage(MqttMessage message) throws TransportHandlerException { - // nothing to do - } -} diff --git a/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/util/ConnectedCupServiceUtils.java b/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/util/ConnectedCupServiceUtils.java deleted file mode 100644 index fd72356c..00000000 --- a/modules/samples/connectedcup/component/controller/src/main/java/org/coffeeking/controller/service/util/ConnectedCupServiceUtils.java +++ /dev/null @@ -1,216 +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.coffeeking.controller.service.util; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.http.HttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.concurrent.FutureCallback; -import org.apache.http.impl.nio.client.CloseableHttpAsyncClient; -import org.apache.http.impl.nio.client.HttpAsyncClients; -import org.coffeeking.connectedcup.plugin.constants.ConnectedCupConstants; -import org.wso2.carbon.context.PrivilegedCarbonContext; -import org.wso2.carbon.device.mgt.analytics.exception.DataPublisherConfigurationException; -import org.wso2.carbon.device.mgt.analytics.service.DeviceAnalyticsService; -import org.wso2.carbon.device.mgt.common.DeviceManagementException; -import javax.ws.rs.HttpMethod; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.ProtocolException; -import java.net.URL; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Future; - -public class ConnectedCupServiceUtils { - private static final Log log = LogFactory.getLog(ConnectedCupServiceUtils.class); - - //TODO; replace this tenant domain - private static final String SUPER_TENANT = "carbon.super"; - private static final String TEMPERATURE_STREAM_DEFINITION = "org.wso2.iot.devices.temperature"; - - public static String sendCommandViaHTTP(final String deviceHTTPEndpoint, String urlContext, - boolean fireAndForgot) throws DeviceManagementException { - - String responseMsg = ""; - String urlString = ConnectedCupConstants.URL_PREFIX + deviceHTTPEndpoint + urlContext; - - if (log.isDebugEnabled()) { - log.debug(urlString); - } - - if (!fireAndForgot) { - HttpURLConnection httpConnection = getHttpConnection(urlString); - - try { - httpConnection.setRequestMethod(HttpMethod.GET); - } catch (ProtocolException e) { - String errorMsg = - "Protocol specific error occurred when trying to set method to GET" + - " for:" + urlString; - log.error(errorMsg); - throw new DeviceManagementException(errorMsg, e); - } - - responseMsg = readResponseFromGetRequest(httpConnection); - - } else { - CloseableHttpAsyncClient httpclient = null; - try { - - httpclient = HttpAsyncClients.createDefault(); - httpclient.start(); - HttpGet request = new HttpGet(urlString); - final CountDownLatch latch = new CountDownLatch(1); - Future future = httpclient.execute( - request, new FutureCallback() { - @Override - public void completed(HttpResponse httpResponse) { - latch.countDown(); - } - - @Override - public void failed(Exception e) { - latch.countDown(); - } - - @Override - public void cancelled() { - latch.countDown(); - } - }); - - latch.await(); - - } catch (InterruptedException e) { - if (log.isDebugEnabled()) { - log.debug("Sync Interrupted"); - } - } finally { - try { - if (httpclient != null) { - httpclient.close(); - - } - } catch (IOException e) { - if (log.isDebugEnabled()) { - log.debug("Failed on close"); - } - } - } - } - - return responseMsg; - } - - /* --------------------------------------------------------------------------------------- - Utility methods relevant to creating and sending http requests - --------------------------------------------------------------------------------------- */ - - /* This methods creates and returns a http connection object */ - - public static HttpURLConnection getHttpConnection(String urlString) throws - DeviceManagementException { - - URL connectionUrl = null; - HttpURLConnection httpConnection; - - try { - connectionUrl = new URL(urlString); - httpConnection = (HttpURLConnection) connectionUrl.openConnection(); - } catch (MalformedURLException e) { - String errorMsg = - "Error occured whilst trying to form HTTP-URL from string: " + urlString; - log.error(errorMsg); - throw new DeviceManagementException(errorMsg, e); - } catch (IOException e) { - String errorMsg = "Error occured whilst trying to open a connection to: " + - connectionUrl.toString(); - log.error(errorMsg); - throw new DeviceManagementException(errorMsg, e); - } - - return httpConnection; - } - - /* This methods reads and returns the response from the connection */ - - public static String readResponseFromGetRequest(HttpURLConnection httpConnection) - throws DeviceManagementException { - BufferedReader bufferedReader; - try { - bufferedReader = new BufferedReader(new InputStreamReader( - httpConnection.getInputStream())); - } catch (IOException e) { - String errorMsg = - "There is an issue with connecting the reader to the input stream at: " + - httpConnection.getURL(); - log.error(errorMsg); - throw new DeviceManagementException(errorMsg, e); - } - - String responseLine; - StringBuilder completeResponse = new StringBuilder(); - - try { - while ((responseLine = bufferedReader.readLine()) != null) { - completeResponse.append(responseLine); - } - } catch (IOException e) { - String errorMsg = - "Error occured whilst trying read from the connection stream at: " + - httpConnection.getURL(); - log.error(errorMsg); - throw new DeviceManagementException(errorMsg, e); - } - try { - bufferedReader.close(); - } catch (IOException e) { - log.error( - "Could not succesfully close the bufferedReader to the connection at: " + - httpConnection.getURL()); - } - - return completeResponse.toString(); - } - - public static boolean publishToDAS(String owner, String deviceId, float temperature) { - PrivilegedCarbonContext.startTenantFlow(); - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - ctx.setTenantDomain(SUPER_TENANT, true); - DeviceAnalyticsService deviceAnalyticsService = (DeviceAnalyticsService) ctx.getOSGiService( - DeviceAnalyticsService.class, null); - Object metdaData[] = {owner, ConnectedCupConstants.DEVICE_TYPE, deviceId, - System.currentTimeMillis()}; - Object payloadData[] = {temperature}; - - try { - deviceAnalyticsService.publishEvent(TEMPERATURE_STREAM_DEFINITION, "1.0.0", metdaData, - new Object[0], payloadData); - } catch (DataPublisherConfigurationException e) { - return false; - } finally { - PrivilegedCarbonContext.endTenantFlow(); - } - return true; - } -} diff --git a/modules/samples/connectedcup/component/controller/src/main/webapp/META-INF/webapp-classloading.xml b/modules/samples/connectedcup/component/controller/src/main/webapp/META-INF/webapp-classloading.xml deleted file mode 100644 index ac70a8ca..00000000 --- a/modules/samples/connectedcup/component/controller/src/main/webapp/META-INF/webapp-classloading.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - false - - - CXF,Carbon - diff --git a/modules/samples/connectedcup/component/controller/src/main/webapp/WEB-INF/cxf-servlet.xml b/modules/samples/connectedcup/component/controller/src/main/webapp/WEB-INF/cxf-servlet.xml deleted file mode 100644 index 70e1e9f9..00000000 --- a/modules/samples/connectedcup/component/controller/src/main/webapp/WEB-INF/cxf-servlet.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/modules/samples/connectedcup/component/controller/src/main/webapp/WEB-INF/web.xml b/modules/samples/connectedcup/component/controller/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index be105f99..00000000 --- a/modules/samples/connectedcup/component/controller/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - ConnectedCup-Webapp - - JAX-WS/JAX-RS Endpoint - JAX-WS/JAX-RS Servlet - CXFServlet - - org.apache.cxf.transport.servlet.CXFServlet - - 1 - - - CXFServlet - /* - - - - isAdminService - false - - - doAuthentication - false - - - - - managed-api-enabled - true - - - managed-api-owner - admin - - - managed-api-context-template - /connectedcup/{version} - - - managed-api-application - connectedcup - - - managed-api-isSecured - true - - - diff --git a/modules/samples/connectedcup/component/manager/pom.xml b/modules/samples/connectedcup/component/manager/pom.xml deleted file mode 100644 index 7916f097..00000000 --- a/modules/samples/connectedcup/component/manager/pom.xml +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - device-mgt-iot-connectedcup - org.wso2.carbon.devicemgt-plugins - 1.9.2-SNAPSHOT - ../pom.xml - - - 4.0.0 - org.coffeeking.manager.service - 1.9.2-SNAPSHOT - war - WSO2 IoTS(Device Types) - Connected Cup Manager Service - WSO2 IoTS(Device Types) - Connected Cup Manager Service - http://wso2.org - - - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.common - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.core - - - org.apache.axis2.wso2 - axis2-client - - - - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.analytics - - - org.apache.axis2.wso2 - axis2-client - - - - - - org.wso2.carbon.devicemgt - org.wso2.carbon.certificate.mgt.core - - - commons-codec.wso2 - commons-codec - - - - - - - - org.apache.cxf - cxf-rt-frontend-jaxws - - - org.apache.cxf - cxf-rt-frontend-jaxrs - - - org.apache.cxf - cxf-rt-transports-http - - - - - org.eclipse.paho - mqtt-client - - - - - org.apache.httpcomponents - httpasyncclient - - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot - - - - - - org.codehaus.jackson - jackson-core-asl - - - org.codehaus.jackson - jackson-jaxrs - - - javax - javaee-web-api - - - javax.ws.rs - jsr311-api - - - commons-httpclient.wso2 - commons-httpclient - - - - org.wso2.carbon - org.wso2.carbon.utils - - - org.bouncycastle.wso2 - bcprov-jdk15on - - - org.wso2.carbon - org.wso2.carbon.user.api - - - org.wso2.carbon - org.wso2.carbon.queuing - - - org.wso2.carbon - org.wso2.carbon.base - - - org.apache.axis2.wso2 - axis2 - - - org.igniterealtime.smack.wso2 - smack - - - org.igniterealtime.smack.wso2 - smackx - - - jaxen - jaxen - - - commons-fileupload.wso2 - commons-fileupload - - - org.apache.ant.wso2 - ant - - - org.apache.ant.wso2 - ant - - - commons-httpclient.wso2 - commons-httpclient - - - org.eclipse.equinox - javax.servlet - - - org.wso2.carbon - org.wso2.carbon.registry.api - - - - - - commons-codec - commons-codec - - - - org.igniterealtime.smack.wso2 - smack - - - org.igniterealtime.smack.wso2 - smackx - - - org.wso2.carbon.devicemgt - org.wso2.carbon.apimgt.annotations - - - - org.wso2.carbon.devicemgt - org.wso2.carbon.apimgt.webapp.publisher - - - - - org.wso2.carbon.devicemgt-plugins - org.coffeeking.connectedcup.plugin - - - - - - - ${basedir}/src/main/java - - - - - maven-compiler-plugin - - 1.7 - 1.7 - - 2.3.2 - - - maven-war-plugin - - connectedcup - - - - - - \ No newline at end of file diff --git a/modules/samples/connectedcup/component/manager/src/main/java/org/coffeeking/manager/service/ConnectedCupManagerService.java b/modules/samples/connectedcup/component/manager/src/main/java/org/coffeeking/manager/service/ConnectedCupManagerService.java deleted file mode 100644 index 3e722ffa..00000000 --- a/modules/samples/connectedcup/component/manager/src/main/java/org/coffeeking/manager/service/ConnectedCupManagerService.java +++ /dev/null @@ -1,243 +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.coffeeking.manager.service; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.coffeeking.connectedcup.plugin.constants.ConnectedCupConstants; -import org.wso2.carbon.apimgt.annotations.api.API; -import org.wso2.carbon.apimgt.annotations.device.DeviceType; -import org.wso2.carbon.apimgt.webapp.publisher.KeyGenerationUtil; -import org.wso2.carbon.device.mgt.common.Device; -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import org.wso2.carbon.device.mgt.common.DeviceManagementException; -import org.wso2.carbon.device.mgt.common.EnrolmentInfo; -import org.wso2.carbon.device.mgt.iot.DeviceManagement; -import org.wso2.carbon.device.mgt.iot.apimgt.AccessTokenInfo; -import org.wso2.carbon.device.mgt.iot.apimgt.TokenClient; -import org.wso2.carbon.device.mgt.iot.exception.AccessTokenException; - -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.Response; -import java.nio.ByteBuffer; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; - -@API( name="connectedcup_mgt", version="1.0.0", context="/connectedcup_mgt") -public class ConnectedCupManagerService { - private static Log log = LogFactory.getLog(ConnectedCupManagerService.class); - private static final String SUPER_TENANT = "carbon.super"; - - @Context - private HttpServletResponse response; - /** - * @param name - * @param owner - * @return - */ - @Path("cup/register") - @POST - public boolean register(@QueryParam("name") String name, @QueryParam("owner") String owner) { - - - DeviceManagement deviceManagement = new DeviceManagement(SUPER_TENANT); - String deviceId = shortUUID(); - - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setId(deviceId); - deviceIdentifier.setType(ConnectedCupConstants.DEVICE_TYPE); - - try { - if (deviceManagement.getDeviceManagementService().isEnrolled(deviceIdentifier)) { - response.setStatus(Response.Status.CONFLICT.getStatusCode()); - return false; - } - - Device device = new Device(); - device.setDeviceIdentifier(deviceId); - EnrolmentInfo enrolmentInfo = new EnrolmentInfo(); - enrolmentInfo.setDateOfEnrolment(new Date().getTime()); - enrolmentInfo.setDateOfLastUpdate(new Date().getTime()); - enrolmentInfo.setStatus(EnrolmentInfo.Status.ACTIVE); - enrolmentInfo.setOwnership(EnrolmentInfo.OwnerShip.BYOD); - device.setName(name); - device.setType(ConnectedCupConstants.DEVICE_TYPE); - enrolmentInfo.setOwner(owner); - device.setEnrolmentInfo(enrolmentInfo); - - KeyGenerationUtil.createApplicationKeys(ConnectedCupConstants.DEVICE_TYPE); - - TokenClient accessTokenClient = new TokenClient(ConnectedCupConstants.DEVICE_TYPE); - AccessTokenInfo accessTokenInfo = accessTokenClient.getAccessToken(owner, deviceId); - - //create token - String accessToken = accessTokenInfo.getAccess_token(); - String refreshToken = accessTokenInfo.getRefresh_token(); - List properties = new ArrayList<>(); - - Device.Property accessTokenProperty = new Device.Property(); - accessTokenProperty.setName("accessToken"); - accessTokenProperty.setValue(accessToken); - - Device.Property refreshTokenProperty = new Device.Property(); - refreshTokenProperty.setName("refreshToken"); - refreshTokenProperty.setValue(refreshToken); - - properties.add(accessTokenProperty); - properties.add(refreshTokenProperty); - device.setProperties(properties); - - boolean added = deviceManagement.getDeviceManagementService().enrollDevice(device); - if (added) { - response.setStatus(Response.Status.OK.getStatusCode()); - } else { - response.setStatus(Response.Status.NOT_ACCEPTABLE.getStatusCode()); - } - - return added; - } catch (DeviceManagementException e) { - response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); - return false; - } catch (AccessTokenException e) { - e.printStackTrace(); - } finally { - deviceManagement.endTenantFlow(); - } - return true; - - } - - @Path("/device/remove/{device_id}") - @DELETE - public void removeDevice(@PathParam("device_id") String deviceId, - @Context HttpServletResponse response) { - - DeviceManagement deviceManagement = new DeviceManagement(SUPER_TENANT); - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setId(deviceId); - deviceIdentifier.setType(ConnectedCupConstants.DEVICE_TYPE); - - try { - boolean removed = deviceManagement.getDeviceManagementService().disenrollDevice( - deviceIdentifier); - if (removed) { - response.setStatus(Response.Status.OK.getStatusCode()); - - } else { - response.setStatus(Response.Status.NOT_ACCEPTABLE.getStatusCode()); - - } - } catch (DeviceManagementException e) { - response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); - } finally { - deviceManagement.endTenantFlow(); - } - - - } - - @Path("/device/update/{device_id}") - @POST - public boolean updateDevice(@PathParam("device_id") String deviceId, - @QueryParam("name") String name, - @Context HttpServletResponse response) { - - DeviceManagement deviceManagement = new DeviceManagement(SUPER_TENANT); - - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setId(deviceId); - deviceIdentifier.setType(ConnectedCupConstants.DEVICE_TYPE); - - try { - Device device = deviceManagement.getDeviceManagementService().getDevice( - deviceIdentifier); - device.setDeviceIdentifier(deviceId); - - // device.setDeviceTypeId(deviceTypeId); - device.getEnrolmentInfo().setDateOfLastUpdate(new Date().getTime()); - - device.setName(name); - device.setType(ConnectedCupConstants.DEVICE_TYPE); - - boolean updated = deviceManagement.getDeviceManagementService().modifyEnrollment( - device); - - - if (updated) { - response.setStatus(Response.Status.OK.getStatusCode()); - - } else { - response.setStatus(Response.Status.NOT_ACCEPTABLE.getStatusCode()); - - } - return updated; - } catch (DeviceManagementException e) { - response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); - return false; - } finally { - deviceManagement.endTenantFlow(); - } - - } - - @Path("/device/{device_id}") - @GET - @Consumes("application/json") - @Produces("application/json") - public Device getDevice(@PathParam("device_id") String deviceId) { - - DeviceManagement deviceManagement = new DeviceManagement(SUPER_TENANT); - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setId(deviceId); - deviceIdentifier.setType(ConnectedCupConstants.DEVICE_TYPE); - - try { - Device device = deviceManagement.getDeviceManagementService().getDevice( - deviceIdentifier); - - return device; - } catch (DeviceManagementException e) { - response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); - return null; - } finally { - deviceManagement.endTenantFlow(); - } - - } - - private static String shortUUID() { - UUID uuid = UUID.randomUUID(); - long l = ByteBuffer.wrap(uuid.toString().getBytes(StandardCharsets.UTF_8)).getLong(); - return Long.toString(l, Character.MAX_RADIX); - } - -} \ No newline at end of file diff --git a/modules/samples/connectedcup/component/manager/src/main/webapp/META-INF/webapp-classloading.xml b/modules/samples/connectedcup/component/manager/src/main/webapp/META-INF/webapp-classloading.xml deleted file mode 100644 index ac70a8ca..00000000 --- a/modules/samples/connectedcup/component/manager/src/main/webapp/META-INF/webapp-classloading.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - false - - - CXF,Carbon - diff --git a/modules/samples/connectedcup/component/manager/src/main/webapp/WEB-INF/cxf-servlet.xml b/modules/samples/connectedcup/component/manager/src/main/webapp/WEB-INF/cxf-servlet.xml deleted file mode 100644 index afbc4afc..00000000 --- a/modules/samples/connectedcup/component/manager/src/main/webapp/WEB-INF/cxf-servlet.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/modules/samples/connectedcup/component/manager/src/main/webapp/WEB-INF/web.xml b/modules/samples/connectedcup/component/manager/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index f197abfa..00000000 --- a/modules/samples/connectedcup/component/manager/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - ConnectedCup-Webapp - - JAX-WS/JAX-RS Endpoint - JAX-WS/JAX-RS Servlet - CXFServlet - - org.apache.cxf.transport.servlet.CXFServlet - - 1 - - - CXFServlet - /* - - - - isAdminService - false - - - doAuthentication - false - - - - - managed-api-enabled - false - - - managed-api-owner - admin - - - managed-api-context-template - /connectedcup/{version} - - - managed-api-application - connectedcup - - - managed-api-isSecured - true - - - diff --git a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/constants/ConnectedCupConstants.java b/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/constants/ConnectedCupConstants.java deleted file mode 100644 index 988ed238..00000000 --- a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/constants/ConnectedCupConstants.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.coffeeking.connectedcup.plugin.constants; - -/** - * Created by menaka on 1/11/16. - */ -public class ConnectedCupConstants { - public final static String DEVICE_TYPE = "connectedcup"; - public final static String DEVICE_PLUGIN_DEVICE_NAME = "DEVICE_NAME"; - public final static String DEVICE_PLUGIN_DEVICE_ID = "CONNECTED_CUP_DEVICE_ID"; - public final static String ORDER_ON = "YES"; - public final static String ORDER_OFF = "NO"; - - public static final String URL_PREFIX = "http://"; - public static final String LEVEL_CONTEXT = "/LEVEL/"; - public static final String TEMPERATURE_CONTEXT = "/TEMPERATURE/"; - - public static final String SENSOR_TEMPERATURE = "temperature"; - public static final String SENSOR_LEVEL = "level"; - -} diff --git a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/ConnectedCupManager.java b/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/ConnectedCupManager.java index 4168ba66..221ebf3a 100644 --- a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/ConnectedCupManager.java +++ b/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/ConnectedCupManager.java @@ -21,7 +21,6 @@ package org.coffeeking.connectedcup.plugin.impl; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.coffeeking.connectedcup.plugin.impl.dao.ConnectedCupDAO; import org.wso2.carbon.device.mgt.common.Device; import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceManagementException; @@ -31,12 +30,6 @@ import org.wso2.carbon.device.mgt.common.FeatureManager; import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration; import org.wso2.carbon.device.mgt.common.license.mgt.License; import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.dao.IotDeviceManagementDAOException; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.dao.IotDeviceManagementDAOFactory; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.dto.IotDevice; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.util.IotDeviceManagementUtil; - -import java.util.ArrayList; import java.util.List; @@ -47,7 +40,6 @@ public class ConnectedCupManager implements DeviceManager { private static final Log log = LogFactory.getLog(ConnectedCupManager.class); - private static final IotDeviceManagementDAOFactory iotDeviceManagementDAOFactory = new ConnectedCupDAO(); @Override public FeatureManager getFeatureManager() { @@ -69,101 +61,25 @@ public class ConnectedCupManager implements DeviceManager { @Override public boolean enrollDevice(Device device) throws DeviceManagementException { - boolean status; - IotDevice iotDevice = IotDeviceManagementUtil.convertToIotDevice(device); - try { - if (log.isDebugEnabled()) { - log.debug("Enrolling a new Connected Cup device : " + device.getDeviceIdentifier()); - } - ConnectedCupDAO.beginTransaction(); - status = iotDeviceManagementDAOFactory.getIotDeviceDAO().addIotDevice( - iotDevice); - ConnectedCupDAO.commitTransaction(); - } catch (IotDeviceManagementDAOException e) { - try { - ConnectedCupDAO.rollbackTransaction(); - } catch (IotDeviceManagementDAOException iotDAOEx) { - String msg = "Error occurred while roll back the device enrol transaction :" + device.toString(); - log.warn(msg, iotDAOEx); - } - String msg = "Error while enrolling the Connected Cup device : " + device.getDeviceIdentifier(); - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } + boolean status = false; return status; } @Override public boolean modifyEnrollment(Device device) throws DeviceManagementException { - boolean status; - IotDevice iotDevice = IotDeviceManagementUtil.convertToIotDevice(device); - try { - if (log.isDebugEnabled()) { - log.debug("Modifying the Connected Cup device enrollment data"); - } - ConnectedCupDAO.beginTransaction(); - status = iotDeviceManagementDAOFactory.getIotDeviceDAO() - .updateIotDevice(iotDevice); - ConnectedCupDAO.commitTransaction(); - } catch (IotDeviceManagementDAOException e) { - try { - ConnectedCupDAO.rollbackTransaction(); - } catch (IotDeviceManagementDAOException iotDAOEx) { - String msg = "Error occurred while roll back the update device transaction :" + device.toString(); - log.warn(msg, iotDAOEx); - } - String msg = "Error while updating the enrollment of the Connected Cup device : " + - device.getDeviceIdentifier(); - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } + boolean status = false; return status; } @Override public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException { - boolean status; - try { - if (log.isDebugEnabled()) { - log.debug("Dis-enrolling Connected Cup device : " + deviceId); - } - ConnectedCupDAO.beginTransaction(); - status = iotDeviceManagementDAOFactory.getIotDeviceDAO() - .deleteIotDevice(deviceId.getId()); - ConnectedCupDAO.commitTransaction(); - } catch (IotDeviceManagementDAOException e) { - try { - ConnectedCupDAO.rollbackTransaction(); - } catch (IotDeviceManagementDAOException iotDAOEx) { - String msg = "Error occurred while roll back the device dis enrol transaction :" + deviceId.toString(); - log.warn(msg, iotDAOEx); - } - String msg = "Error while removing the Connected Cup device : " + deviceId.getId(); - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } + boolean status = false; return status; } @Override public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException { boolean isEnrolled = false; - try { - if (log.isDebugEnabled()) { - log.debug("Checking the enrollment of Connected Cup device : " + deviceId.getId()); - } - IotDevice iotDevice = - iotDeviceManagementDAOFactory.getIotDeviceDAO().getIotDevice( - deviceId.getId()); - if (iotDevice != null) { - isEnrolled = true; - } - } catch (IotDeviceManagementDAOException e) { - String msg = "Error while checking the enrollment status of Connected Cup device : " + - deviceId.getId(); - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } return isEnrolled; } @@ -180,19 +96,7 @@ public class ConnectedCupManager implements DeviceManager { @Override public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException { - Device device; - try { - if (log.isDebugEnabled()) { - log.debug("Getting the details of Connected Cup device : " + deviceId.getId()); - } - IotDevice iotDevice = iotDeviceManagementDAOFactory.getIotDeviceDAO(). - getIotDevice(deviceId.getId()); - device = IotDeviceManagementUtil.convertToDevice(iotDevice); - } catch (IotDeviceManagementDAOException e) { - String msg = "Error while fetching the Connected Cup device : " + deviceId.getId(); - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } + Device device = null; return device; } @@ -229,52 +133,13 @@ public class ConnectedCupManager implements DeviceManager { @Override public boolean updateDeviceInfo(DeviceIdentifier deviceIdentifier, Device device) throws DeviceManagementException { - boolean status; - IotDevice iotDevice = IotDeviceManagementUtil.convertToIotDevice(device); - try { - if (log.isDebugEnabled()) { - log.debug( - "updating the details of Connected Cup device : " + deviceIdentifier); - } - ConnectedCupDAO.beginTransaction(); - status = iotDeviceManagementDAOFactory.getIotDeviceDAO() - .updateIotDevice(iotDevice); - ConnectedCupDAO.commitTransaction(); - } catch (IotDeviceManagementDAOException e) { - try { - ConnectedCupDAO.rollbackTransaction(); - } catch (IotDeviceManagementDAOException iotDAOEx) { - String msg = "Error occurred while roll back the update device info transaction :" + device.toString(); - log.warn(msg, iotDAOEx); - } - String msg = - "Error while updating the Connected Cup device : " + deviceIdentifier; - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } + boolean status = false; return status; } @Override public List getAllDevices() throws DeviceManagementException { List devices = null; - try { - if (log.isDebugEnabled()) { - log.debug("Fetching the details of all Connected Cup devices"); - } - List iotDevices = - iotDeviceManagementDAOFactory.getIotDeviceDAO().getAllIotDevices(); - if (iotDevices != null) { - devices = new ArrayList(); - for (IotDevice iotDevice : iotDevices) { - devices.add(IotDeviceManagementUtil.convertToDevice(iotDevice)); - } - } - } catch (IotDeviceManagementDAOException e) { - String msg = "Error while fetching all Connected Cup devices."; - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } return devices; } diff --git a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/dao/ConnectedCupDAO.java b/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/dao/ConnectedCupDAO.java deleted file mode 100644 index a4d782dc..00000000 --- a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/dao/ConnectedCupDAO.java +++ /dev/null @@ -1,122 +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.coffeeking.connectedcup.plugin.impl.dao; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.coffeeking.connectedcup.plugin.constants.ConnectedCupConstants; -import org.coffeeking.connectedcup.plugin.impl.dao.impl.ConnectedCupDAOImpl; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.dao.IotDeviceDAO; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.dao.IotDeviceManagementDAOException; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.dao.IotDeviceManagementDAOFactory; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.dao.IotDeviceManagementDAOFactoryInterface; - -import javax.sql.DataSource; -import java.sql.Connection; -import java.sql.SQLException; - -public class ConnectedCupDAO extends IotDeviceManagementDAOFactory - implements IotDeviceManagementDAOFactoryInterface { - - private static final Log log = LogFactory.getLog(ConnectedCupDAO.class); - static DataSource dataSource; - private static ThreadLocal currentConnection = new ThreadLocal(); - - public ConnectedCupDAO() { - initFireAlarmDAO(); - } - - public static void initFireAlarmDAO() { - dataSource = getDataSourceMap().get(ConnectedCupConstants.DEVICE_TYPE); - } - - @Override public IotDeviceDAO getIotDeviceDAO() { - return new ConnectedCupDAOImpl(); - } - - public static void beginTransaction() throws IotDeviceManagementDAOException { - try { - Connection conn = dataSource.getConnection(); - conn.setAutoCommit(false); - currentConnection.set(conn); - } catch (SQLException e) { - throw new IotDeviceManagementDAOException("Error occurred while retrieving datasource connection", e); - } - } - - public static Connection getConnection() throws IotDeviceManagementDAOException { - if (currentConnection.get() == null) { - try { - currentConnection.set(dataSource.getConnection()); - } catch (SQLException e) { - throw new IotDeviceManagementDAOException("Error occurred while retrieving data source connection", e); - } - } - return currentConnection.get(); - } - - public static void commitTransaction() throws IotDeviceManagementDAOException { - try { - Connection conn = currentConnection.get(); - if (conn != null) { - conn.commit(); - } else { - if (log.isDebugEnabled()) { - log.debug("Datasource connection associated with the current thread is null, hence commit " - + "has not been attempted"); - } - } - } catch (SQLException e) { - throw new IotDeviceManagementDAOException("Error occurred while committing the transaction", e); - } finally { - closeConnection(); - } - } - - public static void closeConnection() throws IotDeviceManagementDAOException { - - Connection con = currentConnection.get(); - if (con != null) { - try { - con.close(); - } catch (SQLException e) { - log.error("Error occurred while close the connection"); - } - } - currentConnection.remove(); - } - - public static void rollbackTransaction() throws IotDeviceManagementDAOException { - try { - Connection conn = currentConnection.get(); - if (conn != null) { - conn.rollback(); - } else { - if (log.isDebugEnabled()) { - log.debug("Datasource connection associated with the current thread is null, hence rollback " - + "has not been attempted"); - } - } - } catch (SQLException e) { - throw new IotDeviceManagementDAOException("Error occurred while rollback the transaction", e); - } finally { - closeConnection(); - } - } -} \ No newline at end of file diff --git a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/dao/impl/ConnectedCupDAOImpl.java b/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/dao/impl/ConnectedCupDAOImpl.java deleted file mode 100644 index 2de02ac3..00000000 --- a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/dao/impl/ConnectedCupDAOImpl.java +++ /dev/null @@ -1,237 +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.coffeeking.connectedcup.plugin.impl.dao.impl; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.coffeeking.connectedcup.plugin.constants.ConnectedCupConstants; -import org.coffeeking.connectedcup.plugin.impl.dao.ConnectedCupDAO; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.dao.IotDeviceDAO; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.dao.IotDeviceManagementDAOException; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.dao.util.IotDeviceManagementDAOUtil; -import org.wso2.carbon.device.mgt.iot.util.iotdevice.dto.IotDevice; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Implements IotDeviceDAO for virtual firealarm Devices. - */ -public class ConnectedCupDAOImpl implements IotDeviceDAO { - - - private static final Log log = LogFactory.getLog(ConnectedCupDAOImpl.class); - - @Override - public IotDevice getIotDevice(String iotDeviceId) - throws IotDeviceManagementDAOException { - Connection conn = null; - PreparedStatement stmt = null; - IotDevice iotDevice = null; - ResultSet resultSet = null; - try { - conn = ConnectedCupDAO.getConnection(); - String selectDBQuery = - "SELECT CONNECTED_CUP_DEVICE_ID, DEVICE_NAME" + - " FROM CONNECTED_CUP_DEVICE WHERE CONNECTED_CUP_DEVICE_ID = ?"; - stmt = conn.prepareStatement(selectDBQuery); - stmt.setString(1, iotDeviceId); - resultSet = stmt.executeQuery(); - - if (resultSet.next()) { - iotDevice = new IotDevice(); - iotDevice.setIotDeviceName(resultSet.getString( - ConnectedCupConstants.DEVICE_PLUGIN_DEVICE_NAME)); - Map propertyMap = new HashMap(); - - - - iotDevice.setDeviceProperties(propertyMap); - - if (log.isDebugEnabled()) { - log.debug("Connected Cup service " + iotDeviceId + " data has been fetched from " + - "Connected Cup database."); - } - } - } catch (SQLException e) { - String msg = "Error occurred while fetching Connected Cup device : '" + iotDeviceId + "'"; - log.error(msg, e); - throw new IotDeviceManagementDAOException(msg, e); - } finally { - IotDeviceManagementDAOUtil.cleanupResources(stmt, resultSet); - ConnectedCupDAO.closeConnection(); - } - - return iotDevice; - } - - @Override - public boolean addIotDevice(IotDevice iotDevice) - throws IotDeviceManagementDAOException { - boolean status = false; - Connection conn = null; - PreparedStatement stmt = null; - try { - conn = ConnectedCupDAO.getConnection(); - String createDBQuery = - "INSERT INTO CONNECTED_CUP_DEVICE(CONNECTED_CUP_DEVICE_ID, DEVICE_NAME, ACCESS_TOKEN, REFRESH_TOKEN) VALUES (?, ?, ?, ?)"; - - stmt = conn.prepareStatement(createDBQuery); - stmt.setString(1, iotDevice.getIotDeviceId()); - stmt.setString(2, iotDevice.getIotDeviceName()); - stmt.setString(3, iotDevice.getDeviceProperties().get("accessToken")); - stmt.setString(4, iotDevice.getDeviceProperties().get("refreshToken")); - - - int rows = stmt.executeUpdate(); - if (rows > 0) { - status = true; - if (log.isDebugEnabled()) { - log.debug("Connected Cup device " + iotDevice.getIotDeviceId() + " data has been" + - " added to the Connected Cup database."); - } - } - } catch (SQLException e) { - String msg = "Error occurred while adding the Connected Cup device '" + - iotDevice.getIotDeviceId() + "' to the Connected Cup db."; - log.error(msg, e); - throw new IotDeviceManagementDAOException(msg, e); - } finally { - IotDeviceManagementDAOUtil.cleanupResources(stmt, null); - } - return status; - } - - @Override - public boolean updateIotDevice(IotDevice iotDevice) - throws IotDeviceManagementDAOException { - boolean status = false; - Connection conn = null; - PreparedStatement stmt = null; - try { - conn = ConnectedCupDAO.getConnection(); - String updateDBQuery = - "UPDATE CONNECTED_CUP_DEVICE SET DEVICE_NAME = ? WHERE CONNECTED_CUP_DEVICE_ID = ?"; - - stmt = conn.prepareStatement(updateDBQuery); - - if (iotDevice.getDeviceProperties() == null) { - iotDevice.setDeviceProperties(new HashMap()); - } - stmt.setString(1, iotDevice.getIotDeviceName()); - - stmt.setString(2, iotDevice.getIotDeviceId()); - int rows = stmt.executeUpdate(); - if (rows > 0) { - status = true; - if (log.isDebugEnabled()) { - log.debug("Connected Cup device " + iotDevice.getIotDeviceId() + " data has been" + - " modified."); - } - } - } catch (SQLException e) { - String msg = "Error occurred while modifying the Connected Cup device '" + - iotDevice.getIotDeviceId() + "' data."; - log.error(msg, e); - throw new IotDeviceManagementDAOException(msg, e); - } finally { - IotDeviceManagementDAOUtil.cleanupResources(stmt, null); - } - return status; - } - - @Override - public boolean deleteIotDevice(String iotDeviceId) - throws IotDeviceManagementDAOException { - boolean status = false; - Connection conn = null; - PreparedStatement stmt = null; - try { - conn = ConnectedCupDAO.getConnection(); - String deleteDBQuery = - "DELETE FROM CONNECTED_CUP_DEVICE WHERE CONNECTED_CUP_DEVICE_ID = ?"; - stmt = conn.prepareStatement(deleteDBQuery); - stmt.setString(1, iotDeviceId); - int rows = stmt.executeUpdate(); - if (rows > 0) { - status = true; - if (log.isDebugEnabled()) { - log.debug("Connected Cup device " + iotDeviceId + " data has deleted" + - " from the Connected Cup database."); - } - } - } catch (SQLException e) { - String msg = "Error occurred while deleting Connected Cup device " + iotDeviceId; - log.error(msg, e); - throw new IotDeviceManagementDAOException(msg, e); - } finally { - IotDeviceManagementDAOUtil.cleanupResources(stmt, null); - } - return status; - } - - @Override - public List getAllIotDevices() - throws IotDeviceManagementDAOException { - - Connection conn = null; - PreparedStatement stmt = null; - ResultSet resultSet = null; - IotDevice iotDevice; - List iotDevices = new ArrayList<>(); - - try { - conn = ConnectedCupDAO.getConnection(); - String selectDBQuery = - "SELECT CONNECTED_CUP_DEVICE_ID, DEVICE_NAME " + - "FROM CONNECTED_CUP_DEVICE"; - stmt = conn.prepareStatement(selectDBQuery); - resultSet = stmt.executeQuery(); - while (resultSet.next()) { - iotDevice = new IotDevice(); - iotDevice.setIotDeviceId(resultSet.getString(ConnectedCupConstants.DEVICE_PLUGIN_DEVICE_ID)); - iotDevice.setIotDeviceName(resultSet.getString(ConnectedCupConstants.DEVICE_PLUGIN_DEVICE_NAME)); - - Map propertyMap = new HashMap<>(); - - iotDevice.setDeviceProperties(propertyMap); - iotDevices.add(iotDevice); - } - if (log.isDebugEnabled()) { - log.debug("All Connected Cup device details have fetched from Connected Cup database."); - } - return iotDevices; - } catch (SQLException e) { - String msg = "Error occurred while fetching all Connected Cup device data'"; - log.error(msg, e); - throw new IotDeviceManagementDAOException(msg, e); - } finally { - IotDeviceManagementDAOUtil.cleanupResources(stmt, resultSet); - ConnectedCupDAO.closeConnection(); - } - - } - - } \ No newline at end of file diff --git a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/dao/util/ConnectedCupUtils.java b/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/dao/util/ConnectedCupUtils.java deleted file mode 100644 index a2e298cb..00000000 --- a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/impl/dao/util/ConnectedCupUtils.java +++ /dev/null @@ -1,45 +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.coffeeking.connectedcup.plugin.impl.dao.util; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.util.Map; - -/** - * Contains utility methods used by FireAlarm plugin. - */ -public class ConnectedCupUtils { - - private static Log log = LogFactory.getLog(ConnectedCupUtils.class); - - public static String getDeviceProperty(Map deviceProperties, String property) { - - String deviceProperty = deviceProperties.get(property); - - if (deviceProperty == null) { - return ""; - } - - return deviceProperty; - } - - -} diff --git a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/internal/ConnectedCupServiceComponent.java b/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/internal/ConnectedCupServiceComponent.java index f14f3300..4a5b8823 100644 --- a/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/internal/ConnectedCupServiceComponent.java +++ b/modules/samples/connectedcup/component/plugin/src/main/java/org/coffeeking/connectedcup/plugin/internal/ConnectedCupServiceComponent.java @@ -20,13 +20,12 @@ package org.coffeeking.connectedcup.plugin.internal; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.coffeeking.connectedcup.plugin.impl.ConnectedCupManagerService; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; import org.osgi.service.component.ComponentContext; import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService; import org.wso2.carbon.device.mgt.iot.service.DeviceTypeService; - +import org.coffeeking.connectedcup.plugin.impl.ConnectedCupManagerService; /** * @scr.component name="org.coffeeking.connectedcup.plugin.internal * .ConnectedCupServiceComponent" diff --git a/modules/samples/connectedcup/component/pom.xml b/modules/samples/connectedcup/component/pom.xml index cf219c8b..83531d4f 100644 --- a/modules/samples/connectedcup/component/pom.xml +++ b/modules/samples/connectedcup/component/pom.xml @@ -38,8 +38,7 @@ plugin - controller - manager + service agent @@ -65,24 +64,6 @@ - - - org.wso2.carbon.devicemgt-plugins - org.coffeeking.connectedcup.plugin - 1.9.2-SNAPSHOT - provided - - - - org.wso2.carbon.devicemgt - org.wso2.carbon.apimgt.webapp.publisher - ${carbon.device.mgt.version} - system - - ${basedir}/../../../../repository/components/plugins/org.wso2.carbon.apimgt.webapp.publisher_0.9.2.SNAPSHOT.jar - - - org.wso2.carbon org.wso2.carbon.ndatasource.core diff --git a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventreceiver_coffeelevel_1.0.0/EventReceiver_coffeelevel.xml b/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventreceiver_coffeelevel_1.0.0/EventReceiver_coffeelevel.xml deleted file mode 100644 index 8e4a875a..00000000 --- a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventreceiver_coffeelevel_1.0.0/EventReceiver_coffeelevel.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - false - - - - diff --git a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventreceiver_coffeelevel_1.0.0/artifact.xml b/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventreceiver_coffeelevel_1.0.0/artifact.xml deleted file mode 100644 index 3ba63806..00000000 --- a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventreceiver_coffeelevel_1.0.0/artifact.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Eventreceiver_coffeelevel.xml - diff --git a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstore_coffeelevel_1.0.0/artifact.xml b/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstore_coffeelevel_1.0.0/artifact.xml deleted file mode 100644 index 7d5beecd..00000000 --- a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstore_coffeelevel_1.0.0/artifact.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - org_wso2_iot_devices_coffeelevel.xml - diff --git a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstore_coffeelevel_1.0.0/org_wso2_iot_devices_coffeelevel.xml b/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstore_coffeelevel_1.0.0/org_wso2_iot_devices_coffeelevel.xml deleted file mode 100644 index 580b17a3..00000000 --- a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstore_coffeelevel_1.0.0/org_wso2_iot_devices_coffeelevel.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - org.wso2.iot.devices.coffeelevel:1.0.0 - - EVENT_STORE - - - meta_owner - true - true - false - STRING - - - meta_deviceType - true - true - false - STRING - - - meta_deviceId - true - true - false - STRING - - - meta_time - true - true - false - LONG - - - coffeelevel - false - false - false - FLOAT - - - \ No newline at end of file diff --git a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstream_coffeelevel_1.0.0/artifact.xml b/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstream_coffeelevel_1.0.0/artifact.xml deleted file mode 100644 index 6cd0244f..00000000 --- a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstream_coffeelevel_1.0.0/artifact.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - org.wso2.iot.devices.coffeelevel_1.0.0.json - - diff --git a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstream_coffeelevel_1.0.0/org.wso2.iot.devices.coffeelevel_1.0.0.json b/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstream_coffeelevel_1.0.0/org.wso2.iot.devices.coffeelevel_1.0.0.json deleted file mode 100644 index f9058d22..00000000 --- a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Eventstream_coffeelevel_1.0.0/org.wso2.iot.devices.coffeelevel_1.0.0.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "org.wso2.iot.devices.coffeelevel", - "version": "1.0.0", - "nickName": "Coffee Level Data", - "description": "Coffee Level data received from the Device", - "metaData": [ - {"name":"owner","type":"STRING"}, - {"name":"deviceType","type":"STRING"}, - {"name":"deviceId","type":"STRING"}, - {"name":"time","type":"LONG"} - ], - "payloadData": [ - { - "name": "coffeelevel","type": "FLOAT" - } - ] -} - - - diff --git a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Sparkscripts_1.0.0/CoffeeLevel_Sensor_Script.xml b/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Sparkscripts_1.0.0/CoffeeLevel_Sensor_Script.xml deleted file mode 100644 index cb22dc0a..00000000 --- a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Sparkscripts_1.0.0/CoffeeLevel_Sensor_Script.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - IoTServer_Sensor_Script - - 0 * * * * ? - diff --git a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Sparkscripts_1.0.0/artifact.xml b/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Sparkscripts_1.0.0/artifact.xml deleted file mode 100644 index 2ed05598..00000000 --- a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/Sparkscripts_1.0.0/artifact.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - CoffeeLevel_Sensor_Script.xml - diff --git a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/artifacts.xml b/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/artifacts.xml deleted file mode 100644 index 08a03ac0..00000000 --- a/modules/samples/connectedcup/feature/analytics/CoffeeLevel_Sensor/artifacts.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventreceiver_temperature_1.0.0/EventReceiver_temperature.xml b/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventreceiver_temperature_1.0.0/EventReceiver_temperature.xml deleted file mode 100644 index 6786696c..00000000 --- a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventreceiver_temperature_1.0.0/EventReceiver_temperature.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - false - - - - diff --git a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventreceiver_temperature_1.0.0/artifact.xml b/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventreceiver_temperature_1.0.0/artifact.xml deleted file mode 100644 index b72e1ff7..00000000 --- a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventreceiver_temperature_1.0.0/artifact.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - EventReceiver_temperature.xml - diff --git a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstore_temperature_1.0.0/artifact.xml b/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstore_temperature_1.0.0/artifact.xml deleted file mode 100644 index 90b14c11..00000000 --- a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstore_temperature_1.0.0/artifact.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - org_wso2_iot_devices_temperature.xml - diff --git a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstore_temperature_1.0.0/org_wso2_iot_devices_temperature.xml b/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstore_temperature_1.0.0/org_wso2_iot_devices_temperature.xml deleted file mode 100644 index 13a625bd..00000000 --- a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstore_temperature_1.0.0/org_wso2_iot_devices_temperature.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - org.wso2.iot.devices.temperature:1.0.0 - - EVENT_STORE - - - meta_owner - true - true - false - STRING - - - meta_deviceType - true - true - false - STRING - - - meta_deviceId - true - true - false - STRING - - - meta_time - true - true - false - LONG - - - temperature - false - false - false - FLOAT - - - \ No newline at end of file diff --git a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstream_temperature_1.0.0/artifact.xml b/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstream_temperature_1.0.0/artifact.xml deleted file mode 100644 index 61e7903b..00000000 --- a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstream_temperature_1.0.0/artifact.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - org.wso2.iot.devices.temperature_1.0.0.json - - diff --git a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstream_temperature_1.0.0/org.wso2.iot.devices.temperature_1.0.0.json b/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstream_temperature_1.0.0/org.wso2.iot.devices.temperature_1.0.0.json deleted file mode 100644 index 5d94b982..00000000 --- a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Eventstream_temperature_1.0.0/org.wso2.iot.devices.temperature_1.0.0.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "org.wso2.iot.devices.temperature", - "version": "1.0.0", - "nickName": "Temperature Data", - "description": "Temperature data received from the Device", - "metaData": [ - {"name":"owner","type":"STRING"}, - {"name":"deviceType","type":"STRING"}, - {"name":"deviceId","type":"STRING"}, - {"name":"time","type":"LONG"} - ], - "payloadData": [ - { - "name": "temperature","type": "FLOAT" - } - ] -} - - - diff --git a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Sparkscripts_1.0.0/Temperature_Sensor_Script.xml b/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Sparkscripts_1.0.0/Temperature_Sensor_Script.xml deleted file mode 100644 index ee6a7195..00000000 --- a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Sparkscripts_1.0.0/Temperature_Sensor_Script.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - IoTServer_Sensor_Script - - 0 * * * * ? - diff --git a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Sparkscripts_1.0.0/artifact.xml b/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Sparkscripts_1.0.0/artifact.xml deleted file mode 100644 index 58c2dcc1..00000000 --- a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/Sparkscripts_1.0.0/artifact.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Temperature_Sensor_Script.xml - diff --git a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/artifacts.xml b/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/artifacts.xml deleted file mode 100644 index b5350763..00000000 --- a/modules/samples/connectedcup/feature/analytics/Temperature_Sensor/artifacts.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/modules/samples/connectedcup/feature/analytics/build.xml b/modules/samples/connectedcup/feature/analytics/build.xml deleted file mode 100644 index df25af53..00000000 --- a/modules/samples/connectedcup/feature/analytics/build.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/samples/connectedcup/feature/analytics/pom.xml b/modules/samples/connectedcup/feature/analytics/pom.xml deleted file mode 100644 index b60fafe2..00000000 --- a/modules/samples/connectedcup/feature/analytics/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - org.wso2.carbon.devicemgt-plugins - connected-cup-feature-parent - 1.9.2-SNAPSHOT - ../pom.xml - - - - 4.0.0 - org.coffeeking.connectedcup.analytics - pom - 1.9.2-SNAPSHOT - WSO2 IoTS(Device Types) - Connected Cup Analytics - WSO2 IoTS(Device Types) - Connected Cup Analytics - http://wso2.org - - - - - maven-clean-plugin - 2.4.1 - - - auto-clean - initialize - - clean - - - - - - maven-antrun-plugin - 1.7 - - - process-resources - - - - - - - run - - - - - - - - \ No newline at end of file diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/pom.xml b/modules/samples/connectedcup/feature/connectedcup-feature/pom.xml deleted file mode 100644 index 5b10415f..00000000 --- a/modules/samples/connectedcup/feature/connectedcup-feature/pom.xml +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - org.wso2.carbon.devicemgt-plugins - connected-cup-feature-parent - 1.9.2-SNAPSHOT - ../pom.xml - - - 4.0.0 - org.coffeeking.connectedcup.feature - pom - 1.9.2-SNAPSHOT - WSO2 IoTS(Device Types) - Connected Cup Feature - WSO2 IoTS(Device Types) - Connected Cup Feature - http://wso2.org - - - - org.wso2.carbon.devicemgt-plugins - org.coffeeking.connectedcup.plugin - 1.9.2-SNAPSHOT - - - - org.wso2.carbon.devicemgt-plugins - org.coffeeking.manager.service - 1.9.2-SNAPSHOT - war - - - - org.wso2.carbon.devicemgt-plugins - org.coffeeking.controller.service - 1.9.2-SNAPSHOT - war - - - - com.h2database.wso2 - h2-database-engine - 1.2.140.wso2v3 - - - - - - - - maven-resources-plugin - - - copy-resources - generate-resources - - copy-resources - - - src/main/resources - - - resources - - build.properties - p2.inf - - - - - - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - copy-jaxrs-manager-war - package - - copy - - - - - org.wso2.carbon.devicemgt-plugins - org.coffeeking.manager.service - war - true - ${basedir}/src/main/resources/webapps/ - connectedcup_mgt.war - - - - - - - copy-jaxrs-controller-war - package - - copy - - - - - org.wso2.carbon.devicemgt-plugins - org.coffeeking.controller.service - war - true - ${basedir}/src/main/resources/webapps/ - connectedcup.war - - - - - - - - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - - create-connected-cup-plugin-mgt-schema - package - - run - - - - - - - - - - - - - - - - - - - - - - - - - - - - org.wso2.maven - carbon-p2-plugin - - - p2-feature-generation - package - - p2-feature-gen - - - org.coffeeking.connectedcup - ../../../features/etc/feature.properties - - - org.wso2.carbon.p2.category.type:server - org.eclipse.equinox.p2.type.group:false - - - - - org.wso2.carbon.devicemgt-plugins:org.coffeeking.connectedcup.plugin:${carbon.iot.device.mgt.version} - - - - org.wso2.carbon.core.server:${carbon.kernel.version} - - org.wso2.carbon.device.mgt.server:${carbon.device.mgt.version} - - - - - - - - - - diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/configs/connectedcup.json b/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/configs/connectedcup.json deleted file mode 100644 index b8fe6ff1..00000000 --- a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/configs/connectedcup.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "deviceType": { - "label": "Connected Cup", - "category": "virtual", - }, - "analyticStreams": [ - { - "name": "Temperature", - "table": "DEVICE_TEMPERATURE_SUMMARY", - "ui_unit": { - "name": "cdmf.unit.analytics.line-chart", - "data":[ - {"column": {"name":"TIME", "label":"time", "ui-mapping":"x-axis"}}, - {"column": {"name":"TEMPERATURE", "label":"Temperature", "ui-mapping":"y-axis"}} - ] - } - }, - { - "name": "Coffee Level", - "table": "DEVICE_COFFEELEVEL_SUMMARY", - "ui_unit": { - "name": "cdmf.unit.analytics.line-chart", - "data":[ - {"column": {"name":"TIME", "label":"time", "ui-mapping":"x-axis"}}, - {"column": {"name":"COFFEELEVEL", "label":"Coffeelevel", "ui-mapping":"y-axis"}} - ] - } - } - ] -} \ No newline at end of file diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/configs/connectedcup.xml b/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/configs/connectedcup.xml deleted file mode 100644 index 8d70e4d0..00000000 --- a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/configs/connectedcup.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - jdbc/ConnectedCupDM_DB - - - diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/dbscripts/h2.sql b/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/dbscripts/h2.sql deleted file mode 100644 index 0d188547..00000000 --- a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/dbscripts/h2.sql +++ /dev/null @@ -1,13 +0,0 @@ - --- ----------------------------------------------------- --- Table `CONNECTED_CUP_DEVICE` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `CONNECTED_CUP_DEVICE` ( - `CONNECTED_CUP_DEVICE_ID` VARCHAR(45) NOT NULL , - `DEVICE_NAME` VARCHAR(100) NULL DEFAULT NULL, - `ACCESS_TOKEN` VARCHAR(50) NOT NULL, - `REFRESH_TOKEN` VARCHAR(50) NOT NULL, - PRIMARY KEY (`CONNECTED_CUP_DEVICE_ID`) ); - - - diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/dbscripts/mysql.sql b/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/dbscripts/mysql.sql deleted file mode 100644 index ca39ff82..00000000 --- a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/dbscripts/mysql.sql +++ /dev/null @@ -1,14 +0,0 @@ --- ----------------------------------------------------- --- Table `CONNECTED_CUP_DEVICE` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `CONNECTED_CUP_DEVICE` ( - `CONNECTED_CUP_DEVICE_ID` VARCHAR(45) NOT NULL , - `DEVICE_NAME` VARCHAR(100) NULL DEFAULT NULL, - `ACCESS_TOKEN` VARCHAR(50) NOT NULL, - `REFRESH_TOKEN` VARCHAR(50) NOT NULL, - PRIMARY KEY (`CONNECTED_CUP_DEVICE_ID`) ) -ENGINE = InnoDB; - - - - diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/js/download.js b/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/js/download.js deleted file mode 100644 index d5645280..00000000 --- a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/js/download.js +++ /dev/null @@ -1,210 +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. - * - * - */ - -var modalPopup = ".wr-modalpopup"; -var modalPopupContainer = modalPopup + " .modalpopup-container"; -var modalPopupContent = modalPopup + " .modalpopup-content"; -var body = "body"; - -/* - * set popup maximum height function. - */ -function setPopupMaxHeight() { - $(modalPopupContent).css('max-height', ($(body).height() - ($(body).height() / 100 * 30))); - $(modalPopupContainer).css('margin-top', (-($(modalPopupContainer).height() / 2))); -} - -/* - * show popup function. - */ -function showPopup() { - $(modalPopup).show(); - setPopupMaxHeight(); - $('#downloadForm').validate({ - rules: { - deviceName: { - minlength: 4, - required: true - } - }, - highlight: function (element) { - $(element).closest('.control-group').removeClass('success').addClass('error'); - }, - success: function (element) { - $(element).closest('.control-group').removeClass('error').addClass('success'); - $('label[for=deviceName]').remove(); - } - }); - var deviceType = ""; - $('.deviceType').each(function () { - if (this.value != "") { - deviceType = this.value; - } - }); - if (deviceType == 'digitaldisplay') { - $('.sketchType').remove(); - $('input[name="sketchType"][value="digitaldisplay"]').prop('checked', true); - $("label[for='digitaldisplay']").text("Simple Agent"); - } else { - $('.sketchTypes').remove(); - } -} - -/* - * hide popup function. - */ -function hidePopup() { - $('label[for=deviceName]').remove(); - $('.control-group').removeClass('success').removeClass('error'); - $(modalPopupContent).html(''); - $(modalPopup).hide(); -} - -/* - * DOM ready functions. - */ -$(document).ready(function () { - attachEvents(); -}); - -function attachEvents() { - /** - * Following click function would execute - * when a user clicks on "Download" link - * on Device Management page in WSO2 DC Console. - */ - $("a.download-link").click(function () { - var sketchType = $(this).data("sketchtype"); - var deviceType = $(this).data("devicetype"); - var downloadDeviceAPI = "/devicemgt/api/devices/sketch/generate_link"; - var payload = {"sketchType": sketchType, "deviceType": deviceType}; - $(modalPopupContent).html($('#download-device-modal-content').html()); - showPopup(); - var deviceName; - $("a#download-device-download-link").click(function () { - $('.new-device-name').each(function () { - if (this.value != "") { - deviceName = this.value; - } - }); - $('label[for=deviceName]').remove(); - if (deviceName && deviceName.length >= 4) { - payload.deviceName = deviceName; - invokerUtil.post( - downloadDeviceAPI, - payload, - function (data, textStatus, jqxhr) { - doAction(data); - }, - function (data) { - doAction(data); - } - ); - } else if (deviceName) { - $('.controls').append(''); - $('.control-group').removeClass('success').addClass('error'); - } else { - $('.controls').append(''); - $('.control-group').removeClass('success').addClass('error'); - } - }); - - $("a#download-device-cancel-link").click(function () { - hidePopup(); - }); - - }); -} - -function downloadAgent() { - //$('#downloadForm').submit(); - - var $inputs = $('#downloadForm :input'); - - var values = {}; - $inputs.each(function () { - values[this.name] = $(this).val(); - }); - - var payload = {} - payload.name = $inputs[0].value; - payload.owner = $inputs[1].value; - - var coffeeCupRegisterEndpoint = "/connectedcup_mgt/connectedcup/cup/register" + - "?name=" + payload.name + "&owner=" + payload.owner; - - invokerUtil.post( - coffeeCupRegisterEndpoint, - payload, - function (data, textStatus, jqxhr) { - //doAction(data); - alert("Added a CoffeeCup"); - hidePopup(); - }, - function (data) { - //doAction(data); - alert("Added a CoffeeCup"); - hidePopup(); - } - ); - - var deviceName; - $('.new-device-name').each(function () { - if (this.value != "") { - deviceName = this.value; - } - }); - if (deviceName && deviceName.length >= 4) { - setTimeout(function () { - hidePopup(); - }, 1000); - } -} - -function doAction(data) { - //if it is saml redirection response - if (data.status == null) { - document.write(data); - } - - if (data.status == "200") { - $(modalPopupContent).html($('#download-device-modal-content-links').html()); - $("input#download-device-url").val(data.responseText); - $("input#download-device-url").focus(function () { - $(this).select(); - }); - showPopup(); - } else if (data.status == "401") { - $(modalPopupContent).html($('#device-401-content').html()); - $("#device-401-link").click(function () { - window.location = "/devicemgt/login"; - }); - showPopup(); - } else if (data == "403") { - $(modalPopupContent).html($('#device-403-content').html()); - $("#device-403-link").click(function () { - window.location = "/devicemgt/login"; - }); - showPopup(); - } else { - $(modalPopupContent).html($('#device-unexpected-error-content').html()); - $("a#device-unexpected-error-link").click(function () { - hidePopup(); - }); - } -} \ No newline at end of file diff --git a/modules/samples/connectedcup/feature/pom.xml b/modules/samples/connectedcup/feature/pom.xml index 77d8aa76..29d39eb4 100644 --- a/modules/samples/connectedcup/feature/pom.xml +++ b/modules/samples/connectedcup/feature/pom.xml @@ -1,6 +1,6 @@ - - @@ -28,16 +28,117 @@ 4.0.0 - connected-cup-feature-parent + org.coffeeking.connectedcup.feature pom 1.9.2-SNAPSHOT - WSO2 IoTS(Device Types) - Connected Cup Feature Parent - WSO2 IoTS(Device Types) - Connected Cup Feature Parent + WSO2 IoTS(Device Types) - Connected Cup Feature + WSO2 IoTS(Device Types) - Connected Cup Feature http://wso2.org - - analytics - connectedcup-feature - + + + org.wso2.carbon.devicemgt-plugins + org.coffeeking.connectedcup.plugin + 1.9.2-SNAPSHOT + + + + org.wso2.carbon.devicemgt-plugins + org.coffeeking.service + 1.9.2-SNAPSHOT + war + + + + + + + + maven-resources-plugin + + + copy-resources + generate-resources + + copy-resources + + + src/main/resources + + + resources + + build.properties + p2.inf + + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy-jaxrs-war + package + + copy + + + + + org.wso2.carbon.devicemgt-plugins + org.coffeeking.service + war + true + ${basedir}/src/main/resources/webapps/ + connectedcup.war + + + + + + + + + org.wso2.maven + carbon-p2-plugin + + + p2-feature-generation + package + + p2-feature-gen + + + org.coffeeking.connectedcup + ../../../features/etc/feature.properties + + + org.wso2.carbon.p2.category.type:server + org.eclipse.equinox.p2.type.group:false + + + + + org.wso2.carbon.devicemgt-plugins:org.coffeeking.connectedcup.plugin:${carbon.iot.device.mgt.version} + + + + org.wso2.carbon.core.server:${carbon.kernel.version} + + org.wso2.carbon.device.mgt.server:${carbon.device.mgt.version} + + + + + + + + diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/agent/deviceConfig.properties b/modules/samples/connectedcup/feature/src/main/resources/agent/deviceConfig.properties similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/agent/deviceConfig.properties rename to modules/samples/connectedcup/feature/src/main/resources/agent/deviceConfig.properties diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/agent/sketch.properties b/modules/samples/connectedcup/feature/src/main/resources/agent/sketch.properties similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/agent/sketch.properties rename to modules/samples/connectedcup/feature/src/main/resources/agent/sketch.properties diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/agent/start-device.sh b/modules/samples/connectedcup/feature/src/main/resources/agent/start-device.sh similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/agent/start-device.sh rename to modules/samples/connectedcup/feature/src/main/resources/agent/start-device.sh diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/build.properties b/modules/samples/connectedcup/feature/src/main/resources/build.properties similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/build.properties rename to modules/samples/connectedcup/feature/src/main/resources/build.properties diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/datasources/connectedcup-datasources.xml b/modules/samples/connectedcup/feature/src/main/resources/datasources/connectedcup-datasources.xml similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/datasources/connectedcup-datasources.xml rename to modules/samples/connectedcup/feature/src/main/resources/datasources/connectedcup-datasources.xml diff --git a/modules/samples/connectedcup/feature/src/main/resources/dbscripts/h2.sql b/modules/samples/connectedcup/feature/src/main/resources/dbscripts/h2.sql new file mode 100644 index 00000000..5bf6884c --- /dev/null +++ b/modules/samples/connectedcup/feature/src/main/resources/dbscripts/h2.sql @@ -0,0 +1,11 @@ + +-- ----------------------------------------------------- +-- Table `DIGITAL_DISPLAY_DEVICE` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `DIGITAL_DISPLAY_DEVICE` ( + `DIGITAL_DISPLAY_DEVICE_ID` VARCHAR(45) NOT NULL , + `DEVICE_NAME` VARCHAR(100) NULL DEFAULT NULL, + PRIMARY KEY (`DIGITAL_DISPLAY_DEVICE_ID`) ); + + + diff --git a/modules/samples/connectedcup/feature/src/main/resources/dbscripts/mysql.sql b/modules/samples/connectedcup/feature/src/main/resources/dbscripts/mysql.sql new file mode 100644 index 00000000..c87e4b95 --- /dev/null +++ b/modules/samples/connectedcup/feature/src/main/resources/dbscripts/mysql.sql @@ -0,0 +1,12 @@ +-- ----------------------------------------------------- +-- Table `DIGITAL_DISPLAY_DEVICE` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `DIGITAL_DISPLAY_DEVICE` ( + `DIGITAL_DISPLAY_DEVICE_ID` VARCHAR(45) NOT NULL , + `DEVICE_NAME` VARCHAR(100) NULL DEFAULT NULL, + PRIMARY KEY (`DIGITAL_DISPLAY_DEVICE_ID`) ) +ENGINE = InnoDB; + + + + diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.hbs b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.hbs similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.hbs rename to modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.hbs diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.js b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.js similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.js rename to modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.js diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.json b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.json similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.json rename to modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/device-view.json diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/public/images/thumb.png b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/public/images/thumb.png similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/public/images/thumb.png rename to modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.device-view/public/images/thumb.png diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/private/conf/device-type.json b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/private/conf/device-type.json similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/private/conf/device-type.json rename to modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/private/conf/device-type.json diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/coffeecup.png b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/coffeecup.png similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/coffeecup.png rename to modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/coffeecup.png diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/schematicsGuide.png b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/schematicsGuide.png similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/schematicsGuide.png rename to modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/schematicsGuide.png diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/thumb.png b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/thumb.png similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/thumb.png rename to modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/images/thumb.png diff --git a/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/js/download.js b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/js/download.js new file mode 100644 index 00000000..386de339 --- /dev/null +++ b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/js/download.js @@ -0,0 +1,181 @@ +/* + * 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. + * + * + */ + +var modalPopup = ".wr-modalpopup"; +var modalPopupContainer = modalPopup + " .modalpopup-container"; +var modalPopupContent = modalPopup + " .modalpopup-content"; +var body = "body"; + +/* + * set popup maximum height function. + */ +function setPopupMaxHeight() { + $(modalPopupContent).css('max-height', ($(body).height() - ($(body).height() / 100 * 30))); + $(modalPopupContainer).css('margin-top', (-($(modalPopupContainer).height() / 2))); +} + +/* + * show popup function. + */ +function showPopup() { + $(modalPopup).show(); + setPopupMaxHeight(); + $('#downloadForm').validate({ + rules: { + deviceName: { + minlength: 4, + required: true + } + }, + highlight: function (element) { + $(element).closest('.control-group').removeClass('success').addClass('error'); + }, + success: function (element) { + $(element).closest('.control-group').removeClass('error').addClass('success'); + $('label[for=deviceName]').remove(); + } + }); + var deviceType = ""; + $('.deviceType').each(function () { + if (this.value != "") { + deviceType = this.value; + } + }); + if (deviceType == 'digitaldisplay'){ + $('.sketchType').remove(); + $('input[name="sketchType"][value="digitaldisplay"]').prop('checked', true); + $("label[for='digitaldisplay']").text("Simple Agent"); + }else{ + $('.sketchTypes').remove(); + } +} + +/* + * hide popup function. + */ +function hidePopup() { + $('label[for=deviceName]').remove(); + $('.control-group').removeClass('success').removeClass('error'); + $(modalPopupContent).html(''); + $(modalPopup).hide(); +} + +/* + * DOM ready functions. + */ +$(document).ready(function () { + attachEvents(); +}); + +function attachEvents() { + /** + * Following click function would execute + * when a user clicks on "Download" link + * on Device Management page in WSO2 DC Console. + */ + $("a.download-link").click(function () { + var sketchType = $(this).data("sketchtype"); + var deviceType = $(this).data("devicetype"); + var downloadDeviceAPI = "/devicemgt/api/devices/sketch/generate_link"; + var payload = {"sketchType": sketchType, "deviceType": deviceType}; + $(modalPopupContent).html($('#download-device-modal-content').html()); + showPopup(); + var deviceName; + $("a#download-device-download-link").click(function () { + $('.new-device-name').each(function () { + if (this.value != "") { + deviceName = this.value; + } + }); + $('label[for=deviceName]').remove(); + if (deviceName && deviceName.length >= 4) { + payload.deviceName = deviceName; + invokerUtil.post( + downloadDeviceAPI, + payload, + function (data, textStatus, jqxhr) { + doAction(data); + }, + function (data) { + doAction(data); + } + ); + }else if(deviceName){ + $('.controls').append(''); + $('.control-group').removeClass('success').addClass('error'); + } else { + $('.controls').append(''); + $('.control-group').removeClass('success').addClass('error'); + } + }); + + $("a#download-device-cancel-link").click(function () { + hidePopup(); + }); + + }); +} + +function downloadAgent() { + $('#downloadForm').submit(); + + var deviceName; + $('.new-device-name').each(function () { + if (this.value != "") { + deviceName = this.value; + } + }); + if (deviceName && deviceName.length >= 4) { + setTimeout(function () { + hidePopup(); + }, 1000); + } +} + +function doAction(data) { + //if it is saml redirection response + if (data.status == null) { + document.write(data); + } + + if (data.status == "200") { + $(modalPopupContent).html($('#download-device-modal-content-links').html()); + $("input#download-device-url").val(data.responseText); + $("input#download-device-url").focus(function () { + $(this).select(); + }); + showPopup(); + } else if (data.status == "401") { + $(modalPopupContent).html($('#device-401-content').html()); + $("#device-401-link").click(function () { + window.location = "/devicemgt/login"; + }); + showPopup(); + } else if (data == "403") { + $(modalPopupContent).html($('#device-403-content').html()); + $("#device-403-link").click(function () { + window.location = "/devicemgt/login"; + }); + showPopup(); + } else { + $(modalPopupContent).html($('#device-unexpected-error-content').html()); + $("a#device-unexpected-error-link").click(function () { + hidePopup(); + }); + } +} \ No newline at end of file diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/js/jquery.validate.js b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/js/jquery.validate.js similarity index 100% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/js/jquery.validate.js rename to modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/public/js/jquery.validate.js diff --git a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/type-view.hbs b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/type-view.hbs similarity index 60% rename from modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/type-view.hbs rename to modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/type-view.hbs index 06c89db3..81ed9ce5 100644 --- a/modules/samples/connectedcup/feature/connectedcup-feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/type-view.hbs +++ b/modules/samples/connectedcup/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/type-view.hbs @@ -7,17 +7,17 @@
-

Ingredients

-
-

Hardware Requirements

-
-
    +

    Ingredients

    +
    +

    Hardware Requirements

    +
    +
      Coffee Cup
      -
    -
    +
+
View API   @@ -29,21 +29,29 @@

Name your device and download the agent from following link.


- -
+
- +
- + +

-
@@ -153,64 +161,65 @@

-
-

Prepare

-
-

Get your device ready

-
-
    -

    01 Set up your RaspberryPi device as shown in the - schematic below and get the Digital Display setup. -

    +
    +

    Prepare


    +

    Get your device ready

    +
    +
      +

      01 Set up your RaspberryPi device as shown in the schematic below and get the Digital Display setup.

      +

      02 Connect a monitor to your RaspberryPi via the HDMI cable to get a UI view of the device.

      +

      03 Get the RaspberryPi to connect to the internet (via Ethernet or Wifi) and note its IP_ADDRESS

      +
    +
    +
    -

    02 Connect a monitor to your RaspberryPi via the HDMI - cable to get a UI view of the device.

    +
    +

    Schematic Diagram


    +

    Click on the image to zoom

    +
    + + + +
    +
    +
    -

    03 Get the RaspberryPi to connect to the internet (via - Ethernet or Wifi) and note its IP_ADDRESS

    -
-
-
+
+

Connect (Quick Start)


+

Internet of Things Foundation Quickstart connection

+
+
    +

    01 Click on the 'Create DEB' button above to get the download link for the Digital Display setup files

    +

    02 (The following commands can be issued by directly typing into the terminal of the device or by an 'ssh' login from a remote PC)

    +

    03 Download the Digital Display setup files using the following command: 'curl -k < url_link_received_from_the_above_step >> Agent.zip'
    This will download a zip file named 'Agent.zip'

    +
+
+
-
-

Schematic Diagram

-
-

Click on the image to zoom

-
- - - -
-
-
-

Connect (Quick Start)

-
-

Internet of Things Foundation Quickstart connection

-
-
    -

    01 Click on the 'Create DEB' button above to - get the download link for the Digital Display - setup files

    - -

    02 (The following commands can be issued by - directly typing into the terminal of the device - or by an 'ssh' login from a remote - PC)

    - -

    03 Download the Digital Display setup files using - the following command: 'curl -k < - url_link_received_from_the_above_step >> - Agent.zip'
    This will download a zip - file named 'Agent.zip' -

    -
-
+ -