mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Merge branch 'hasuniea-master'
This commit is contained in:
commit
bc22647a04
@ -1,94 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* you may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.mobile.dao;
|
||||
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeatureProperty;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This class represents the key operations associated with persisting mobile feature property
|
||||
* related information.
|
||||
*/
|
||||
public interface MobileFeaturePropertyDAO {
|
||||
|
||||
/**
|
||||
* Add a new MobileFeatureProperty to MobileFeatureProperty table.
|
||||
*
|
||||
* @param mblFeatureProperty MobileFeatureProperty object that holds data related to the feature
|
||||
* property to be inserted.
|
||||
* @return The status of the operation.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
boolean addMobileFeatureProperty(MobileFeatureProperty mblFeatureProperty)
|
||||
throws MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Updates a MobileFeatureProperty in the MobileFeatureProperty table.
|
||||
*
|
||||
* @param mblFeatureProperty MobileFeatureProperty object that holds data has to be updated.
|
||||
* @return The status of the operation.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
boolean updateMobileFeatureProperty(MobileFeatureProperty mblFeatureProperty)
|
||||
throws MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Deletes a given MobileFeatureProperty from MobileFeatureProperty table.
|
||||
*
|
||||
* @param property Property of the MobileFeatureProperty to be deleted.
|
||||
* @return The status of the operation.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
boolean deleteMobileFeatureProperty(String property) throws MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Deletes MobileFeatureProperties of a given feature from MobileFeatureProperty table.
|
||||
*
|
||||
* @param mblFeatureId Feature-id of the MobileFeature corresponding properties should be deleted.
|
||||
* @return The status of the operation.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
boolean deleteMobileFeaturePropertiesOfFeature(Integer mblFeatureId)
|
||||
throws MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Retrieves a given MobileFeatureProperty from MobileFeatureProperty table.
|
||||
*
|
||||
* @param property Property of the feature property to be retrieved.
|
||||
* @return MobileFeatureProperty object that holds data of the feature property represented by
|
||||
* property.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
MobileFeatureProperty getMobileFeatureProperty(String property)
|
||||
throws MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Retrieves a list of MobileFeatureProperties corresponds to a given feature id from
|
||||
* MobileFeatureProperty table.
|
||||
*
|
||||
* @param mblFeatureId feature id of the MobileFeatureProperties to be retrieved.
|
||||
* @return List of MobileFeatureProperty objects that holds data of the MobileFeatureProperties
|
||||
* represented by featureId.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
List<MobileFeatureProperty> getFeaturePropertiesOfFeature(Integer mblFeatureId)
|
||||
throws MobileDeviceManagementDAOException;
|
||||
|
||||
}
|
||||
@ -1,250 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* you may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.mobile.dao.impl;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileFeaturePropertyDAO;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.util.MobileDeviceManagementDAOUtil;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeatureProperty;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Implementation of MobileFeaturePropertyDAO.
|
||||
*/
|
||||
public class MobileFeaturePropertyDAOImpl implements MobileFeaturePropertyDAO {
|
||||
|
||||
private DataSource dataSource;
|
||||
private static final Log log = LogFactory.getLog(MobileFeaturePropertyDAOImpl.class);
|
||||
|
||||
public MobileFeaturePropertyDAOImpl(DataSource dataSource) {
|
||||
this.dataSource = dataSource;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addMobileFeatureProperty(MobileFeatureProperty mblFeatureProperty)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
boolean status = false;
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String createDBQuery =
|
||||
"INSERT INTO AD_FEATURE_PROPERTY(PROPERTY, FEATURE_ID) VALUES (?, ?)";
|
||||
|
||||
stmt = conn.prepareStatement(createDBQuery);
|
||||
stmt.setString(1, mblFeatureProperty.getProperty());
|
||||
stmt.setInt(2, mblFeatureProperty.getFeatureID());
|
||||
int rows = stmt.executeUpdate();
|
||||
if (rows > 0) {
|
||||
status = true;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Added MobileFeatureProperty " + mblFeatureProperty.getProperty() +
|
||||
" to the MDM database.");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while adding property id - '" +
|
||||
mblFeatureProperty.getFeatureID() + "'";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateMobileFeatureProperty(MobileFeatureProperty mblFeatureProperty)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
boolean status = false;
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String updateDBQuery =
|
||||
"UPDATE AD_FEATURE_PROPERTY SET FEATURE_ID = ? WHERE PROPERTY = ?";
|
||||
stmt = conn.prepareStatement(updateDBQuery);
|
||||
stmt.setInt(1, mblFeatureProperty.getFeatureID());
|
||||
stmt.setString(2, mblFeatureProperty.getProperty());
|
||||
int rows = stmt.executeUpdate();
|
||||
if (rows > 0) {
|
||||
status = true;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Updated MobileFeatureProperty " + mblFeatureProperty.getProperty());
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while updating the feature property with property - '" +
|
||||
mblFeatureProperty.getProperty() + "'";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteMobileFeatureProperty(String property)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
boolean status = false;
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String deleteDBQuery =
|
||||
"DELETE FROM AD_FEATURE_PROPERTY WHERE PROPERTY = ?";
|
||||
stmt = conn.prepareStatement(deleteDBQuery);
|
||||
stmt.setString(1, property);
|
||||
int rows = stmt.executeUpdate();
|
||||
if (rows > 0) {
|
||||
status = true;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Deleted MobileFeatureProperty " + property + " from MDM database.");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while deleting feature property with property - " +
|
||||
property;
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteMobileFeaturePropertiesOfFeature(Integer mblFeatureId)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
boolean status = false;
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String deleteDBQuery =
|
||||
"DELETE FROM AD_FEATURE_PROPERTY WHERE FEATURE_ID = ?";
|
||||
stmt = conn.prepareStatement(deleteDBQuery);
|
||||
stmt.setInt(1, mblFeatureId);
|
||||
int rows = stmt.executeUpdate();
|
||||
if (rows > 0) {
|
||||
status = true;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Deleted all MobileFeatureProperties of FeatureId " + mblFeatureId +
|
||||
" from MDM database.");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while deleting feature properties of feature - " +
|
||||
mblFeatureId;
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MobileFeatureProperty getMobileFeatureProperty(String property)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
MobileFeatureProperty mobileFeatureProperty = null;
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String selectDBQuery =
|
||||
"SELECT PROPERTY, FEATURE_ID FROM AD_FEATURE_PROPERTY WHERE PROPERTY = ?";
|
||||
stmt = conn.prepareStatement(selectDBQuery);
|
||||
stmt.setString(1, property);
|
||||
ResultSet resultSet = stmt.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
mobileFeatureProperty = new MobileFeatureProperty();
|
||||
mobileFeatureProperty.setProperty(resultSet.getString(1));
|
||||
mobileFeatureProperty.setFeatureID(resultSet.getInt(2));
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Fetched MobileFeatureProperty " + mobileFeatureProperty.getProperty() +
|
||||
" from MDM database.");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while fetching property - '" +
|
||||
property + "'";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
return mobileFeatureProperty;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MobileFeatureProperty> getFeaturePropertiesOfFeature(Integer mblFeatureId)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
MobileFeatureProperty mobileFeatureProperty;
|
||||
List<MobileFeatureProperty> FeatureProperties = new ArrayList<MobileFeatureProperty>();
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String selectDBQuery =
|
||||
"SELECT PROPERTY, FEATURE_ID FROM AD_FEATURE_PROPERTY WHERE FEATURE_ID = ?";
|
||||
stmt = conn.prepareStatement(selectDBQuery);
|
||||
stmt.setInt(1, mblFeatureId);
|
||||
ResultSet resultSet = stmt.executeQuery();
|
||||
while (resultSet.next()) {
|
||||
mobileFeatureProperty = new MobileFeatureProperty();
|
||||
mobileFeatureProperty.setProperty(resultSet.getString(1));
|
||||
mobileFeatureProperty.setFeatureID(resultSet.getInt(2));
|
||||
FeatureProperties.add(mobileFeatureProperty);
|
||||
}
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Fetched all MobileFeatureProperties of featureId " + mblFeatureId +
|
||||
" from MDM database.");
|
||||
}
|
||||
return FeatureProperties;
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while fetching all feature property.'";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
}
|
||||
|
||||
private Connection getConnection() throws MobileDeviceManagementDAOException {
|
||||
try {
|
||||
return dataSource.getConnection();
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while obtaining a connection from the mobile device " +
|
||||
"management metadata repository datasource.";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -48,10 +48,6 @@ public class AndroidDAOFactory extends AbstractMobileDeviceManagementDAOFactory
|
||||
return new AndroidFeatureDAOImpl();
|
||||
}
|
||||
|
||||
public MobileFeaturePropertyDAO getFeaturePropertyDAO() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void beginTransaction() throws MobileDeviceManagementDAOException {
|
||||
try {
|
||||
Connection conn = dataSource.getConnection();
|
||||
|
||||
@ -57,11 +57,16 @@ public class WindowsDeviceManager implements DeviceManager {
|
||||
public WindowsDeviceManager() {
|
||||
this.daoFactory = new WindowsDAOFactory();
|
||||
this.licenseManager = new RegistryBasedLicenseManager();
|
||||
|
||||
License defaultLicense = WindowsPluginUtils.getDefaultLicense();
|
||||
|
||||
try {
|
||||
licenseManager.addLicense(WindowsDeviceManagementService.DEVICE_TYPE_WINDOWS, defaultLicense);
|
||||
featureManager.addSupportedFeaturesToDB();
|
||||
} catch (LicenseManagementException e) {
|
||||
log.error("Error occurred while adding default license for Windows devices", e);
|
||||
} catch (DeviceManagementException e) {
|
||||
log.error("Error occurred while adding supported device features for Windows platform", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,29 +1,26 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
* 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
|
||||
* 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.
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.mobile.impl.windows;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.Feature;
|
||||
import org.wso2.carbon.device.mgt.common.FeatureManager;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.AbstractMobileDeviceManagementDAOFactory;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOFactory;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileFeatureDAO;
|
||||
@ -37,7 +34,6 @@ import java.util.List;
|
||||
public class WindowsFeatureManager implements FeatureManager {
|
||||
|
||||
private MobileFeatureDAO featureDAO;
|
||||
private static final Log log = LogFactory.getLog(WindowsFeatureManager.class);
|
||||
|
||||
public WindowsFeatureManager() {
|
||||
MobileDeviceManagementDAOFactory daoFactory = new WindowsDAOFactory();
|
||||
@ -47,30 +43,49 @@ public class WindowsFeatureManager implements FeatureManager {
|
||||
@Override
|
||||
public boolean addFeature(Feature feature) throws DeviceManagementException {
|
||||
try {
|
||||
WindowsDAOFactory.beginTransaction();
|
||||
WindowsDAOFactory.beginTransaction();
|
||||
MobileFeature mobileFeature = MobileDeviceManagementUtil.convertToMobileFeature(feature);
|
||||
featureDAO.addFeature(mobileFeature);
|
||||
WindowsDAOFactory.commitTransaction();
|
||||
WindowsDAOFactory.commitTransaction();
|
||||
return true;
|
||||
} catch (MobileDeviceManagementDAOException e) {
|
||||
WindowsDAOFactory.rollbackTransaction();
|
||||
WindowsDAOFactory.rollbackTransaction();
|
||||
throw new DeviceManagementException("Error occurred while adding the feature", e);
|
||||
} finally {
|
||||
WindowsDAOFactory.closeConnection();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addFeatures(List<Feature> list) throws DeviceManagementException {
|
||||
return false;
|
||||
public boolean addFeatures(List<Feature> features) throws DeviceManagementException {
|
||||
List<MobileFeature> mobileFeatures = new ArrayList<MobileFeature>();
|
||||
for (Feature feature : features) {
|
||||
mobileFeatures.add(MobileDeviceManagementUtil.convertToMobileFeature(feature));
|
||||
}
|
||||
try {
|
||||
WindowsDAOFactory.beginTransaction();
|
||||
featureDAO.addFeatures(mobileFeatures);
|
||||
WindowsDAOFactory.commitTransaction();
|
||||
return true;
|
||||
} catch (MobileDeviceManagementDAOException e) {
|
||||
WindowsDAOFactory.rollbackTransaction();
|
||||
throw new DeviceManagementException("Error occurred while adding the features", e);
|
||||
} finally {
|
||||
WindowsDAOFactory.closeConnection();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Feature getFeature(String name) throws DeviceManagementException {
|
||||
try {
|
||||
WindowsDAOFactory.openConnection();
|
||||
MobileFeature mobileFeature = featureDAO.getFeatureByCode(name);
|
||||
Feature feature = MobileDeviceManagementUtil.convertToFeature(mobileFeature);
|
||||
Feature feature = MobileDeviceManagementUtil.convertToFeature(mobileFeature);
|
||||
return feature;
|
||||
} catch (MobileDeviceManagementDAOException e) {
|
||||
throw new DeviceManagementException("Error occurred while retrieving the feature", e);
|
||||
} finally {
|
||||
WindowsDAOFactory.closeConnection();
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,6 +94,7 @@ public class WindowsFeatureManager implements FeatureManager {
|
||||
|
||||
List<Feature> featureList = new ArrayList<Feature>();
|
||||
try {
|
||||
WindowsDAOFactory.openConnection();
|
||||
List<MobileFeature> mobileFeatures = featureDAO.getAllFeatures();
|
||||
for (MobileFeature mobileFeature : mobileFeatures) {
|
||||
featureList.add(MobileDeviceManagementUtil.convertToFeature(mobileFeature));
|
||||
@ -86,7 +102,9 @@ public class WindowsFeatureManager implements FeatureManager {
|
||||
return featureList;
|
||||
} catch (MobileDeviceManagementDAOException e) {
|
||||
throw new DeviceManagementException("Error occurred while retrieving the list of features registered for " +
|
||||
"Android platform", e);
|
||||
"Windows platform", e);
|
||||
} finally {
|
||||
WindowsDAOFactory.closeConnection();
|
||||
}
|
||||
}
|
||||
|
||||
@ -94,20 +112,85 @@ public class WindowsFeatureManager implements FeatureManager {
|
||||
public boolean removeFeature(String code) throws DeviceManagementException {
|
||||
boolean status;
|
||||
try {
|
||||
WindowsDAOFactory.beginTransaction();
|
||||
WindowsDAOFactory.beginTransaction();
|
||||
featureDAO.deleteFeatureByCode(code);
|
||||
WindowsDAOFactory.commitTransaction();
|
||||
WindowsDAOFactory.commitTransaction();
|
||||
status = true;
|
||||
} catch (MobileDeviceManagementDAOException e) {
|
||||
WindowsDAOFactory.rollbackTransaction();
|
||||
WindowsDAOFactory.rollbackTransaction();
|
||||
throw new DeviceManagementException("Error occurred while removing the feature", e);
|
||||
} finally {
|
||||
WindowsDAOFactory.closeConnection();
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addSupportedFeaturesToDB() throws DeviceManagementException {
|
||||
return false;
|
||||
synchronized (this) {
|
||||
List<Feature> supportedFeatures = getSupportedFeatures();
|
||||
List<Feature> existingFeatures = this.getFeatures();
|
||||
List<Feature> missingFeatures = MobileDeviceManagementUtil.
|
||||
getMissingFeatures(supportedFeatures, existingFeatures);
|
||||
if (missingFeatures.size() > 0) {
|
||||
return this.addFeatures(missingFeatures);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* Get supported Windows features.
|
||||
*
|
||||
* @return Supported features.
|
||||
*/
|
||||
public static List<Feature> getSupportedFeatures() {
|
||||
List<Feature> supportedFeatures = new ArrayList<Feature>();
|
||||
Feature feature = new Feature();
|
||||
feature.setCode("DEVICE_LOCK");
|
||||
feature.setName("Device Lock");
|
||||
feature.setDescription("Lock the device");
|
||||
supportedFeatures.add(feature);
|
||||
feature = new Feature();
|
||||
feature.setCode("CAMERA");
|
||||
feature.setName("camera");
|
||||
feature.setDescription("Enable or disable camera");
|
||||
supportedFeatures.add(feature);
|
||||
feature = new Feature();
|
||||
feature.setCode("DEVICE_INFO");
|
||||
feature.setName("Device info");
|
||||
feature.setDescription("Request device information");
|
||||
supportedFeatures.add(feature);
|
||||
feature = new Feature();
|
||||
feature.setCode("WIPE_DATA");
|
||||
feature.setName("Wipe Data");
|
||||
feature.setDescription("Factory reset the device");
|
||||
supportedFeatures.add(feature);
|
||||
feature = new Feature();
|
||||
feature.setCode("ENCRYPT_STORAGE");
|
||||
feature.setName("Encrypt storage");
|
||||
feature.setDescription("Encrypt storage");
|
||||
supportedFeatures.add(feature);
|
||||
feature = new Feature();
|
||||
feature.setCode("DEVICE_RING");
|
||||
feature.setName("Ring");
|
||||
feature.setDescription("Ring the device");
|
||||
supportedFeatures.add(feature);
|
||||
feature = new Feature();
|
||||
feature.setCode("PASSCODE_POLICY");
|
||||
feature.setName("Password Policy");
|
||||
feature.setDescription("Set passcode policy");
|
||||
supportedFeatures.add(feature);
|
||||
feature = new Feature();
|
||||
feature.setCode("DISENROLL");
|
||||
feature.setName("DisEnroll");
|
||||
feature.setDescription("DisEnroll the device");
|
||||
supportedFeatures.add(feature);
|
||||
feature = new Feature();
|
||||
feature.setCode("LOCK_RESET");
|
||||
feature.setName("LockReset");
|
||||
feature.setDescription("Lock Reset device");
|
||||
supportedFeatures.add(feature);
|
||||
return supportedFeatures;
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,8 +21,12 @@ package org.wso2.carbon.device.mgt.mobile.impl.windows.dao;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.*;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.AbstractMobileDeviceManagementDAOFactory;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceDAO;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileFeatureDAO;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.windows.dao.impl.WindowsDeviceDAOImpl;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.windows.dao.impl.WindowsFeatureDAOImpl;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import java.sql.Connection;
|
||||
@ -45,7 +49,7 @@ public class WindowsDAOFactory extends AbstractMobileDeviceManagementDAOFactory
|
||||
|
||||
@Override
|
||||
public MobileFeatureDAO getMobileFeatureDAO() {
|
||||
return null;
|
||||
return new WindowsFeatureDAOImpl();
|
||||
}
|
||||
|
||||
public static void beginTransaction() throws MobileDeviceManagementDAOException {
|
||||
@ -124,5 +128,4 @@ public class WindowsDAOFactory extends AbstractMobileDeviceManagementDAOFactory
|
||||
log.warn("Error occurred while roll-backing the transaction", e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.mobile.impl.windows.dao;
|
||||
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Implement Exception class for Windows Device Features.
|
||||
*/
|
||||
public class WindowsFeatureManagementDAOException extends MobileDeviceManagementDAOException {
|
||||
|
||||
private String message;
|
||||
private static final long serialVersionUID = 2021891706072918865L;
|
||||
|
||||
/**
|
||||
* Constructs a new MobileDeviceManagementDAOException with the specified detail message and
|
||||
* nested exception.
|
||||
*
|
||||
* @param message error message
|
||||
* @param nestedException exception
|
||||
*/
|
||||
public WindowsFeatureManagementDAOException(String message, Exception nestedException) {
|
||||
super(message, nestedException);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new MobileDeviceManagementDAOException with the specified detail message
|
||||
* and cause.
|
||||
*
|
||||
* @param message the detail message.
|
||||
* @param cause the cause of this exception.
|
||||
*/
|
||||
public WindowsFeatureManagementDAOException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
setErrorMessage(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new MobileDeviceManagementDAOException with the specified detail message.
|
||||
*
|
||||
* @param message the detail message.
|
||||
*/
|
||||
public WindowsFeatureManagementDAOException(String message) {
|
||||
super(message);
|
||||
setErrorMessage(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new MobileDeviceManagementDAOException with the specified and cause.
|
||||
*
|
||||
* @param cause the cause of this exception.
|
||||
*/
|
||||
public WindowsFeatureManagementDAOException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setErrorMessage(String errorMessage) {
|
||||
this.message = errorMessage;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,272 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.mobile.impl.windows.dao.impl;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileFeatureDAO;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.util.MobileDeviceManagementDAOUtil;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeature;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.windows.dao.WindowsDAOFactory;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.windows.dao.WindowsFeatureManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.windows.util.WindowsPluginConstants;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Implement MobileFeatureDAO for Windows devices.
|
||||
*/
|
||||
public class WindowsFeatureDAOImpl implements MobileFeatureDAO {
|
||||
|
||||
private static final Log log = LogFactory.getLog(WindowsFeatureDAOImpl.class);
|
||||
|
||||
public WindowsFeatureDAOImpl() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addFeature(MobileFeature mobileFeature) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
boolean status;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "INSERT INTO WIN_FEATURE(CODE, NAME, DESCRIPTION) VALUES (?, ?, ?)";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setString(1, mobileFeature.getCode());
|
||||
stmt.setString(2, mobileFeature.getName());
|
||||
stmt.setString(3, mobileFeature.getDescription());
|
||||
stmt.executeUpdate();
|
||||
status = true;
|
||||
status = true;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while adding windows feature '" +
|
||||
mobileFeature.getName() + "' into the metadata repository", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addFeatures(List<MobileFeature> mobileFeatures) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
boolean status = false;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
stmt = conn.prepareStatement("INSERT INTO WIN_FEATURE(CODE, NAME, DESCRIPTION) VALUES (?, ?, ?)");
|
||||
for (MobileFeature mobileFeature : mobileFeatures) {
|
||||
stmt.setString(1, mobileFeature.getCode());
|
||||
stmt.setString(2, mobileFeature.getName());
|
||||
stmt.setString(3, mobileFeature.getDescription());
|
||||
stmt.addBatch();
|
||||
}
|
||||
stmt.executeBatch();
|
||||
status = true;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while adding windows features into the metadata repository", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateFeature(MobileFeature mobileFeature) throws MobileDeviceManagementDAOException {
|
||||
boolean status = false;
|
||||
Connection conn;
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String updateDBQuery =
|
||||
"UPDATE WIN_FEATURE SET NAME = ?, DESCRIPTION = ?" +
|
||||
"WHERE CODE = ?";
|
||||
stmt = conn.prepareStatement(updateDBQuery);
|
||||
stmt.setString(1, mobileFeature.getName());
|
||||
stmt.setString(2, mobileFeature.getDescription());
|
||||
stmt.setString(3, mobileFeature.getCode());
|
||||
int rows = stmt.executeUpdate();
|
||||
if (rows > 0) {
|
||||
status = true;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Windows Feature " + mobileFeature.getCode() + " data has been " +
|
||||
"modified.");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException("Error occurred while updating the Windows Feature '" +
|
||||
mobileFeature.getCode() + "' to the Windows db.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteFeatureById(int mblFeatureId) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
boolean status = false;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "DELETE FROM WIN_FEATURE WHERE FEATURE_ID = ?";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setInt(1, mblFeatureId);
|
||||
stmt.execute();
|
||||
status = true;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while deleting windows feature '" +
|
||||
mblFeatureId + "' from Windows database.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteFeatureByCode(String mblFeatureCode) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
boolean status = false;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "DELETE FROM WIN_FEATURE WHERE CODE = ?";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setString(1, mblFeatureCode);
|
||||
stmt.execute();
|
||||
status = true;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while deleting windows feature '" +
|
||||
mblFeatureCode + "' from Windows database.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MobileFeature getFeatureById(int mblFeatureId) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
ResultSet rs = null;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "SELECT FEATURE_ID, CODE, NAME, DESCRIPTION FROM WIN_FEATURE WHERE ID = ?";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setInt(1, mblFeatureId);
|
||||
rs = stmt.executeQuery();
|
||||
MobileFeature mobileFeature = null;
|
||||
if (rs.next()) {
|
||||
mobileFeature = new MobileFeature();
|
||||
mobileFeature.setId(rs.getInt(WindowsPluginConstants.WINDOWS_FEATURE_ID));
|
||||
mobileFeature.setCode(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_CODE));
|
||||
mobileFeature.setName(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_NAME));
|
||||
mobileFeature.setDescription(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_DESCRIPTION));
|
||||
mobileFeature.setDeviceType(
|
||||
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||
}
|
||||
return mobileFeature;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while retrieving windows feature '" +
|
||||
mblFeatureId + "' from the Windows database.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MobileFeature getFeatureByCode(String mblFeatureCode) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
ResultSet rs = null;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "SELECT FEATURE_ID, CODE, NAME, DESCRIPTION FROM WIN_FEATURE WHERE CODE = ?";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setString(1, mblFeatureCode);
|
||||
rs = stmt.executeQuery();
|
||||
MobileFeature mobileFeature = null;
|
||||
if (rs.next()) {
|
||||
mobileFeature = new MobileFeature();
|
||||
mobileFeature.setId(rs.getInt(WindowsPluginConstants.WINDOWS_FEATURE_ID));
|
||||
mobileFeature.setCode(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_CODE));
|
||||
mobileFeature.setName(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_NAME));
|
||||
mobileFeature.setDescription(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_DESCRIPTION));
|
||||
mobileFeature.setDeviceType(
|
||||
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||
}
|
||||
return mobileFeature;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while retrieving windows feature '" +
|
||||
mblFeatureCode + "' from the Windows database.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MobileFeature> getFeatureByDeviceType(String deviceType) throws MobileDeviceManagementDAOException {
|
||||
return this.getAllFeatures();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MobileFeature> getAllFeatures() throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
ResultSet rs = null;
|
||||
Connection conn;
|
||||
List<MobileFeature> features = new ArrayList<>();
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "SELECT FEATURE_ID, CODE, NAME, DESCRIPTION FROM WIN_FEATURE";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
rs = stmt.executeQuery();
|
||||
MobileFeature mobileFeature;
|
||||
while (rs.next()) {
|
||||
mobileFeature = new MobileFeature();
|
||||
mobileFeature.setId(rs.getInt(WindowsPluginConstants.WINDOWS_FEATURE_ID));
|
||||
mobileFeature.setCode(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_CODE));
|
||||
mobileFeature.setName(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_NAME));
|
||||
mobileFeature.setDescription(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_DESCRIPTION));
|
||||
mobileFeature.setDeviceType(
|
||||
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||
features.add(mobileFeature);
|
||||
}
|
||||
return features;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException("Error occurred while retrieving all " +
|
||||
"windows features from the Windows database.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -38,4 +38,11 @@ public class WindowsPluginConstants {
|
||||
public static final String MAC_ADDRESS = "MAC_ADDRESS";
|
||||
public static final String DEVICE_NAME = "DEVICE_NAME";
|
||||
|
||||
//Properties related to WIN_FEATURE table
|
||||
public static final String WINDOWS_FEATURE_ID = "FEATURE_ID";
|
||||
public static final String WINDOWS_FEATURE_CODE = "CODE";
|
||||
public static final String WINDOWS_FEATURE_NAME = "NAME";
|
||||
public static final String WINDOWS_FEATURE_DESCRIPTION = "DESCRIPTION";
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,260 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* you may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.mobile.impl.dao;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.tomcat.jdbc.pool.DataSource;
|
||||
import org.apache.tomcat.jdbc.pool.PoolProperties;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Parameters;
|
||||
import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.impl.MobileFeatureDAOImpl;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeature;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.common.DBTypes;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.common.TestDBConfiguration;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.dao.util.MobileDatabaseUtils;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class for holding unit-tests related to MobileFeatureDAO class.
|
||||
*
|
||||
*/
|
||||
public class MobileFeatureDAOTestSuite {
|
||||
|
||||
private static final Log log = LogFactory.getLog(MobileFeatureDAOTestSuite.class);
|
||||
public static final String MBL_FEATURE_NAME = "Camera";
|
||||
private static final String MBL_FEATURE_CODE = "500A";
|
||||
public static final String MBL_FEATURE_DESCRIPTION = "Camera enable or disable";
|
||||
public static final String MBL_FEATURE_DEVICE_TYPE = "Android";
|
||||
public static final String MBL_FEATURE_UPDATED_CODE = "501B";
|
||||
private TestDBConfiguration testDBConfiguration;
|
||||
private MobileFeatureDAOImpl mblFeatureDAO;
|
||||
private int mblFeatureId;
|
||||
|
||||
@BeforeClass
|
||||
@Parameters("dbType")
|
||||
public void setUpDB(String dbTypeStr) throws Exception {
|
||||
|
||||
DBTypes dbType = DBTypes.valueOf(dbTypeStr);
|
||||
testDBConfiguration = MobileDatabaseUtils.getTestDBConfiguration(dbType);
|
||||
|
||||
switch (dbType) {
|
||||
case H2:
|
||||
MobileDatabaseUtils.createH2DB(testDBConfiguration);
|
||||
DataSource testDataSource = new org.apache.tomcat.jdbc.pool.DataSource();
|
||||
PoolProperties properties = new PoolProperties();
|
||||
properties.setUrl(testDBConfiguration.getConnectionURL());
|
||||
properties.setDriverClassName(testDBConfiguration.getDriverClassName());
|
||||
properties.setUsername(testDBConfiguration.getUsername());
|
||||
properties.setPassword(testDBConfiguration.getPassword());
|
||||
testDataSource.setPoolProperties(properties);
|
||||
mblFeatureDAO = new MobileFeatureDAOImpl(testDataSource);
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addMobileFeatureTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
MobileFeature mobileFeature = new MobileFeature();
|
||||
MobileFeature testMblFeature = new MobileFeature();
|
||||
mobileFeature.setCode(MBL_FEATURE_CODE);
|
||||
mobileFeature.setDescription(MBL_FEATURE_DESCRIPTION);
|
||||
mobileFeature.setName(MBL_FEATURE_NAME);
|
||||
mobileFeature.setDeviceType(MBL_FEATURE_DEVICE_TYPE);
|
||||
mblFeatureDAO.addFeature(mobileFeature);
|
||||
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query =
|
||||
"SELECT ID, CODE, NAME, DESCRIPTION, DEVICE_TYPE FROM AD_FEATURE WHERE CODE = ?";
|
||||
preparedStatement = conn.prepareStatement(query);
|
||||
preparedStatement.setString(1, MBL_FEATURE_CODE);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
testMblFeature.setId(resultSet.getInt(1));
|
||||
testMblFeature.setCode(resultSet.getString(2));
|
||||
testMblFeature.setName(resultSet.getString(3));
|
||||
testMblFeature.setDescription(resultSet.getString(4));
|
||||
testMblFeature.setDeviceType(resultSet.getString(5));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in retrieving Mobile Feature data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
mblFeatureId = testMblFeature.getId();
|
||||
Assert.assertTrue(mblFeatureId > 0, "MobileFeature has added ");
|
||||
Assert.assertEquals(MBL_FEATURE_CODE, testMblFeature.getCode(),
|
||||
"MobileFeature code has persisted ");
|
||||
Assert.assertEquals(MBL_FEATURE_NAME, testMblFeature.getName(),
|
||||
"MobileFeature name has persisted ");
|
||||
Assert.assertEquals(MBL_FEATURE_DESCRIPTION, testMblFeature.getDescription(),
|
||||
"MobileFeature description has persisted ");
|
||||
Assert.assertEquals(MBL_FEATURE_DEVICE_TYPE, testMblFeature.getDeviceType(),
|
||||
"MobileFeature device-type has persisted ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest" })
|
||||
public void getMobileFeatureByCodeTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
MobileFeature mobileFeature = mblFeatureDAO.getFeatureByCode(MBL_FEATURE_CODE);
|
||||
Assert.assertEquals(MBL_FEATURE_CODE, mobileFeature.getCode(),
|
||||
"MobileFeature code has retrieved ");
|
||||
Assert.assertEquals(MBL_FEATURE_NAME, mobileFeature.getName(),
|
||||
"MobileFeature name has retrieved ");
|
||||
Assert.assertEquals(MBL_FEATURE_DESCRIPTION, mobileFeature.getDescription(),
|
||||
"MobileFeature description has retrieved ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest" })
|
||||
public void getMobileFeatureByIdTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
MobileFeature mobileFeature = mblFeatureDAO.getFeatureById(mblFeatureId);
|
||||
Assert.assertEquals(MBL_FEATURE_CODE, mobileFeature.getCode(),
|
||||
"MobileFeature code has retrieved ");
|
||||
Assert.assertEquals(MBL_FEATURE_NAME, mobileFeature.getName(),
|
||||
"MobileFeature name has retrieved ");
|
||||
Assert.assertEquals(MBL_FEATURE_DESCRIPTION, mobileFeature.getDescription(),
|
||||
"MobileFeature description has retrieved ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest" })
|
||||
public void getAllMobileFeaturesTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
List<MobileFeature> mobileFeatures = mblFeatureDAO.getAllFeatures();
|
||||
Assert.assertNotNull(mobileFeatures, "MobileFeature list is not null");
|
||||
Assert.assertTrue(mobileFeatures.size() > 0, "MobileFeature list has 1 MobileFeature");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest", "getMobileFeatureByCodeTest",
|
||||
"getMobileFeatureByIdTest", "getAllMobileFeaturesTest" })
|
||||
public void updateMobileFeatureTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
|
||||
MobileFeature mobileFeature = new MobileFeature();
|
||||
MobileFeature testMblFeature = new MobileFeature();
|
||||
mobileFeature.setCode(MBL_FEATURE_UPDATED_CODE);
|
||||
mobileFeature.setDescription(MBL_FEATURE_DESCRIPTION);
|
||||
mobileFeature.setName(MBL_FEATURE_NAME);
|
||||
mobileFeature.setId(mblFeatureId);
|
||||
boolean updated = mblFeatureDAO.updateFeature(mobileFeature);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query =
|
||||
"SELECT ID, CODE, NAME, DESCRIPTION FROM AD_FEATURE WHERE CODE = ?";
|
||||
stmt = conn.prepareStatement(query);
|
||||
stmt.setString(1, MBL_FEATURE_UPDATED_CODE);
|
||||
ResultSet resultSet = stmt.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
testMblFeature.setId(resultSet.getInt(1));
|
||||
testMblFeature.setCode(resultSet.getString(2));
|
||||
testMblFeature.setName(resultSet.getString(3));
|
||||
testMblFeature.setDescription(resultSet.getString(4));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in updating Mobile Feature data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
Assert.assertTrue(updated, "MobileFeature has updated");
|
||||
Assert.assertEquals(MBL_FEATURE_UPDATED_CODE, testMblFeature.getCode(),
|
||||
"MobileFeature data has updated ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest", "getMobileFeatureByCodeTest",
|
||||
"getMobileFeatureByIdTest", "getAllMobileFeaturesTest",
|
||||
"updateMobileFeatureTest" })
|
||||
public void deleteMobileFeatureByIdTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
|
||||
boolean status = mblFeatureDAO.deleteFeatureById(mblFeatureId);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query = "SELECT ID, CODE FROM AD_FEATURE WHERE ID = ?";
|
||||
stmt = conn.prepareStatement(query);
|
||||
stmt.setInt(1, mblFeatureId);
|
||||
ResultSet resultSet = stmt.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
status = false;
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in deleting Mobile Feature data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
Assert.assertTrue(status, "MobileFeature has deleted ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest", "getMobileFeatureByCodeTest",
|
||||
"getMobileFeatureByIdTest", "getAllMobileFeaturesTest",
|
||||
"updateMobileFeatureTest", "deleteMobileFeatureByIdTest" })
|
||||
public void deleteMobileFeatureByCodeTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
MobileFeature mobileFeature = new MobileFeature();
|
||||
mobileFeature.setCode(MBL_FEATURE_CODE);
|
||||
mobileFeature.setDescription(MBL_FEATURE_DESCRIPTION);
|
||||
mobileFeature.setName(MBL_FEATURE_NAME);
|
||||
mobileFeature.setDeviceType(MBL_FEATURE_DEVICE_TYPE);
|
||||
mblFeatureDAO.addFeature(mobileFeature);
|
||||
boolean status = mblFeatureDAO.deleteFeatureByCode(MBL_FEATURE_CODE);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query = "SELECT ID, CODE FROM AD_FEATURE WHERE CODE = ?";
|
||||
preparedStatement = conn.prepareStatement(query);
|
||||
preparedStatement.setString(1, MBL_FEATURE_CODE);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
status = false;
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in deleting Mobile Feature data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
Assert.assertTrue(status, "MobileFeature has deleted ");
|
||||
}
|
||||
}
|
||||
@ -1,241 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* you may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.mobile.impl.dao;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.tomcat.jdbc.pool.DataSource;
|
||||
import org.apache.tomcat.jdbc.pool.PoolProperties;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Parameters;
|
||||
import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.impl.MobileFeatureDAOImpl;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.impl.MobileFeaturePropertyDAOImpl;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeature;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeatureProperty;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.common.DBTypes;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.common.TestDBConfiguration;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.dao.util.MobileDatabaseUtils;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class for holding unit-tests related to MobileFeaturePropertyDAO class.
|
||||
*
|
||||
*/
|
||||
public class MobileFeaturePropertyDAOTestSuite {
|
||||
|
||||
private static final Log log = LogFactory.getLog(MobileFeaturePropertyDAOTestSuite.class);
|
||||
public static final String MBL_FEATURE_NAME = "WIFI";
|
||||
private static final String MBL_FEATURE_CODE = "500A";
|
||||
public static final String MBL_FEATURE_DESCRIPTION = "Wifi config";
|
||||
public static final String MBL_FEATURE_DEVICE_TYPE = "Android";
|
||||
public static final String MBL_FEATURE_PROP_1 = "SSID";
|
||||
public static final String MBL_FEATURE_PROP_2 = "PASSWORD";
|
||||
private TestDBConfiguration testDBConfiguration;
|
||||
private MobileFeatureDAOImpl mblFeatureDAO;
|
||||
private MobileFeaturePropertyDAOImpl mobileFeaturePropertyDAO;
|
||||
private int mblFeatureId;
|
||||
|
||||
@BeforeClass
|
||||
@Parameters("dbType")
|
||||
public void setUpDB(String dbTypeStr) throws Exception {
|
||||
|
||||
DBTypes dbType = DBTypes.valueOf(dbTypeStr);
|
||||
testDBConfiguration = MobileDatabaseUtils.getTestDBConfiguration(dbType);
|
||||
|
||||
switch (dbType) {
|
||||
case H2:
|
||||
MobileDatabaseUtils.createH2DB(testDBConfiguration);
|
||||
DataSource testDataSource = new org.apache.tomcat.jdbc.pool.DataSource();
|
||||
PoolProperties properties = new PoolProperties();
|
||||
properties.setUrl(testDBConfiguration.getConnectionURL());
|
||||
properties.setDriverClassName(testDBConfiguration.getDriverClassName());
|
||||
properties.setUsername(testDBConfiguration.getUsername());
|
||||
properties.setPassword(testDBConfiguration.getPassword());
|
||||
testDataSource.setPoolProperties(properties);
|
||||
mblFeatureDAO = new MobileFeatureDAOImpl(testDataSource);
|
||||
mobileFeaturePropertyDAO = new MobileFeaturePropertyDAOImpl(testDataSource);
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addMobileFeaturePropertyTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
List<MobileFeatureProperty> propertyList = new ArrayList<MobileFeatureProperty>();
|
||||
//Add a new MobileFeature to the database
|
||||
MobileFeature mobileFeature = new MobileFeature();
|
||||
mobileFeature.setCode(MBL_FEATURE_CODE);
|
||||
mobileFeature.setDescription(MBL_FEATURE_DESCRIPTION);
|
||||
mobileFeature.setName(MBL_FEATURE_NAME);
|
||||
mobileFeature.setDeviceType(MBL_FEATURE_DEVICE_TYPE);
|
||||
mblFeatureDAO.addFeature(mobileFeature);
|
||||
|
||||
MobileFeature persistMblFeature = mblFeatureDAO.getFeatureByCode(MBL_FEATURE_CODE);
|
||||
mblFeatureId = persistMblFeature.getId();
|
||||
//Add 1st property to the feature
|
||||
MobileFeatureProperty mobileFeatureProperty = new MobileFeatureProperty();
|
||||
mobileFeatureProperty.setFeatureID(mblFeatureId);
|
||||
mobileFeatureProperty.setProperty(MBL_FEATURE_PROP_1);
|
||||
boolean status1 = mobileFeaturePropertyDAO.addMobileFeatureProperty(mobileFeatureProperty);
|
||||
|
||||
//Add 2nd property to the feature
|
||||
mobileFeatureProperty.setProperty(MBL_FEATURE_PROP_2);
|
||||
boolean status2 = mobileFeaturePropertyDAO.addMobileFeatureProperty(mobileFeatureProperty);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query =
|
||||
"SELECT FEATURE_ID, PROPERTY FROM AD_FEATURE_PROPERTY WHERE FEATURE_ID = ?";
|
||||
preparedStatement = conn.prepareStatement(query);
|
||||
preparedStatement.setInt(1, mblFeatureId);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
|
||||
while (resultSet.next()) {
|
||||
mobileFeatureProperty = new MobileFeatureProperty();
|
||||
mobileFeatureProperty.setFeatureID(resultSet.getInt(1));
|
||||
mobileFeatureProperty.setProperty(resultSet.getString(2));
|
||||
propertyList.add(mobileFeatureProperty);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in retrieving Mobile Feature data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
Assert.assertTrue(status1, "MobileFeatureProperty1 has added ");
|
||||
Assert.assertTrue(status2, "MobileFeatureProperty2 has added ");
|
||||
Assert.assertTrue(propertyList.size() == 2, "MobileFeatureProperties have retrieved ");
|
||||
|
||||
for (MobileFeatureProperty mblFeatureProperty : propertyList) {
|
||||
Assert.assertNotNull(mblFeatureProperty.getProperty(),
|
||||
"MobileFeatureProperty property has persisted ");
|
||||
Assert.assertNotNull(mblFeatureProperty.getFeatureID(),
|
||||
"MobileFeatureProperty feature-id has persisted ");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeaturePropertyTest" })
|
||||
public void getMobileFeaturePropertyTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
MobileFeatureProperty mobileFeatureProperty =
|
||||
mobileFeaturePropertyDAO.getMobileFeatureProperty(MBL_FEATURE_PROP_1);
|
||||
Assert.assertNotNull(mobileFeatureProperty, "MobileFeatureProperty has retrieved ");
|
||||
Assert.assertEquals(MBL_FEATURE_PROP_1, mobileFeatureProperty.getProperty(),
|
||||
"MobileFeatureProperty property has retrieved ");
|
||||
Assert.assertTrue(mblFeatureId == mobileFeatureProperty.getFeatureID(),
|
||||
"MobileFeatureProperty featureId has retrieved ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeaturePropertyTest" })
|
||||
public void getFeaturePropertyOfFeatureTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
List<MobileFeatureProperty> mobileFeatureProperties =
|
||||
mobileFeaturePropertyDAO.getFeaturePropertiesOfFeature(mblFeatureId);
|
||||
Assert.assertNotNull(mobileFeatureProperties, "MobileFeatureProperty list has retrieved ");
|
||||
Assert.assertTrue(mobileFeatureProperties.size() == 2,
|
||||
"MobileFeatureProperties have fetched ");
|
||||
for (MobileFeatureProperty mblFeatureProperty : mobileFeatureProperties) {
|
||||
Assert.assertNotNull(mblFeatureProperty.getProperty(),
|
||||
"MobileFeatureProperty property has fetched ");
|
||||
Assert.assertNotNull(mblFeatureProperty.getFeatureID(),
|
||||
"MobileFeatureProperty feature-id has fetched ");
|
||||
}
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeaturePropertyTest", "getMobileFeaturePropertyTest",
|
||||
"getFeaturePropertyOfFeatureTest" }, expectedExceptions = MobileDeviceManagementDAOException.class)
|
||||
public void updateMobileFeaturePropertyTest() throws MobileDeviceManagementDAOException {
|
||||
//Update 1st property to a non-exist feature
|
||||
MobileFeatureProperty mobileFeatureProperty = new MobileFeatureProperty();
|
||||
mobileFeatureProperty.setFeatureID(2);
|
||||
mobileFeatureProperty.setProperty(MBL_FEATURE_PROP_1);
|
||||
mobileFeaturePropertyDAO.updateMobileFeatureProperty(mobileFeatureProperty);
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeaturePropertyTest", "getMobileFeaturePropertyTest",
|
||||
"getFeaturePropertyOfFeatureTest" })
|
||||
public void deleteMobileFeaturePropertyTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
boolean status =
|
||||
mobileFeaturePropertyDAO.deleteMobileFeatureProperty(MBL_FEATURE_PROP_2);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query =
|
||||
"SELECT PROPERTY, FEATURE_ID FROM AD_FEATURE_PROPERTY WHERE PROPERTY = ?";
|
||||
preparedStatement = conn.prepareStatement(query);
|
||||
preparedStatement.setString(1, MBL_FEATURE_PROP_2);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
|
||||
if (resultSet.next()) {
|
||||
status = false;
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in retrieving MobileFeatureProperty data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
Assert.assertTrue(status, "MobileFeatureProperty has deleted ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeaturePropertyTest", "getMobileFeaturePropertyTest",
|
||||
"getFeaturePropertyOfFeatureTest", "updateMobileFeaturePropertyTest",
|
||||
"deleteMobileFeaturePropertyTest" })
|
||||
public void deleteMobileFeaturePropertiesOfFeatureTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
boolean status =
|
||||
mobileFeaturePropertyDAO.deleteMobileFeaturePropertiesOfFeature(mblFeatureId);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query =
|
||||
"SELECT PROPERTY, FEATURE_ID FROM AD_FEATURE_PROPERTY WHERE FEATURE_ID = ?";
|
||||
preparedStatement = conn.prepareStatement(query);
|
||||
preparedStatement.setInt(1, mblFeatureId);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
|
||||
if (resultSet.next()) {
|
||||
status = false;
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in retrieving MobileFeatureProperty data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
Assert.assertTrue(status, "MobileFeatureProperties has deleted ");
|
||||
}
|
||||
|
||||
}
|
||||
@ -24,13 +24,4 @@
|
||||
<class name="org.wso2.carbon.device.mgt.mobile.impl.MobileDeviceManagementConfigTests"/>
|
||||
</classes>
|
||||
</test>
|
||||
|
||||
<test name="DAO Unit Tests" preserve-order="true">
|
||||
<parameter name="dbType" value="H2"/>
|
||||
<classes>
|
||||
<class name="org.wso2.carbon.device.mgt.mobile.impl.dao.MobileFeatureDAOTestSuite"/>
|
||||
<class name="org.wso2.carbon.device.mgt.mobile.impl.dao.MobileFeaturePropertyDAOTestSuite"/>
|
||||
</classes>
|
||||
</test>
|
||||
|
||||
</suite>
|
||||
@ -1,7 +1,7 @@
|
||||
-- -----------------------------------------------------
|
||||
-- Table `WINDOWS_FEATURE`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE WINDOWS_FEATURE (
|
||||
CREATE TABLE WIN_FEATURE (
|
||||
ID INT NOT NULL IDENTITY,
|
||||
CODE VARCHAR(45) NOT NULL,
|
||||
NAME VARCHAR(100) NULL,
|
||||
@ -12,7 +12,7 @@ CREATE TABLE WINDOWS_FEATURE (
|
||||
-- -----------------------------------------------------
|
||||
-- Table `WINDOWS_DEVICE`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE WINDOWS_DEVICE (
|
||||
CREATE TABLE WIN_DEVICE (
|
||||
DEVICE_ID VARCHAR(45) NOT NULL,
|
||||
CHANNEL_URI VARCHAR(100) NULL DEFAULT NULL,
|
||||
DEVICE_INFO VARCHAR(8000) NULL DEFAULT NULL,
|
||||
|
||||
@ -31,18 +31,5 @@ CREATE TABLE IF NOT EXISTS `WIN_FEATURE` (
|
||||
PRIMARY KEY (`FEATURE_ID`))
|
||||
ENGINE = InnoDB;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `WIN_FEATURE_PROPERTY`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `WIN_FEATURE_PROPERTY` (
|
||||
`PROPERTY` VARCHAR(45) NOT NULL ,
|
||||
`FEATURE_ID` INT NOT NULL ,
|
||||
PRIMARY KEY (`PROPERTY`),
|
||||
CONSTRAINT `fk_WIN_FEATURE_PROPERTY_WIN_FEATURE1`
|
||||
FOREIGN KEY (`FEATURE_ID`)
|
||||
REFERENCES `WIN_FEATURE` (`FEATURE_ID`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
|
||||
@ -32,20 +32,6 @@ CREATE TABLE WIN_FEATURE (
|
||||
);
|
||||
/
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `WIN_FEATURE_PROPERTY`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE WIN_FEATURE_PROPERTY (
|
||||
PROPERTY VARCHAR(45) NOT NULL,
|
||||
FEATURE_ID INT NOT NULL,
|
||||
PRIMARY KEY (PROPERTY),
|
||||
CONSTRAINT fk_WIN_FEATURE_PROPERTY_WIN_FEATURE1
|
||||
FOREIGN KEY (FEATURE_ID)
|
||||
REFERENCES WIN_FEATURE (ID)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION);
|
||||
/
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Sequence `WIN_FEATURE_ID_INC_SEQ`
|
||||
-- -----------------------------------------------------
|
||||
|
||||
@ -30,16 +30,3 @@ CREATE TABLE IF NOT EXISTS WIN_FEATURE (
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `WIN_FEATURE_PROPERTY`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS WIN_FEATURE_PROPERTY (
|
||||
PROPERTY VARCHAR(45) NOT NULL ,
|
||||
FEATURE_ID INT NOT NULL ,
|
||||
PRIMARY KEY (PROPERTY),
|
||||
CONSTRAINT fk_WIN_FEATURE_PROPERTY_WIN_FEATURE1
|
||||
FOREIGN KEY (FEATURE_ID)
|
||||
REFERENCES WIN_FEATURE (ID)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION
|
||||
);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user