mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Fixing transaction anomalies and code clean up
This commit is contained in:
parent
3c444f6102
commit
00807e8295
@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* 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.common;
|
||||||
|
|
||||||
|
public class TransactionManagementException extends Exception {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -3151279321929070297L;
|
||||||
|
|
||||||
|
private String errorMessage;
|
||||||
|
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrorMessage(String errorMessage) {
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransactionManagementException(String msg, Exception nestedEx) {
|
||||||
|
super(msg, nestedEx);
|
||||||
|
setErrorMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransactionManagementException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
setErrorMessage(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransactionManagementException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
setErrorMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransactionManagementException() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransactionManagementException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -27,6 +27,7 @@ import org.wso2.carbon.context.CarbonContext;
|
|||||||
import org.wso2.carbon.device.mgt.common.Device;
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||||
|
import org.wso2.carbon.device.mgt.common.TransactionManagementException;
|
||||||
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
|
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
|
||||||
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
|
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
|
||||||
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
||||||
@ -60,10 +61,8 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem
|
|||||||
private DeviceDAO deviceDAO;
|
private DeviceDAO deviceDAO;
|
||||||
private ApplicationDAO applicationDAO;
|
private ApplicationDAO applicationDAO;
|
||||||
private ApplicationMappingDAO applicationMappingDAO;
|
private ApplicationMappingDAO applicationMappingDAO;
|
||||||
private boolean isTest;
|
|
||||||
|
|
||||||
private static final String GET_APP_LIST_URL = "store/apis/assets/mobileapp?domain=carbon.super&page=1";
|
private static final String GET_APP_LIST_URL = "store/apis/assets/mobileapp?domain=carbon.super&page=1";
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(ApplicationManagerProviderServiceImpl.class);
|
private static final Log log = LogFactory.getLog(ApplicationManagerProviderServiceImpl.class);
|
||||||
|
|
||||||
public ApplicationManagerProviderServiceImpl(AppManagementConfig appManagementConfig,
|
public ApplicationManagerProviderServiceImpl(AppManagementConfig appManagementConfig,
|
||||||
@ -87,12 +86,11 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem
|
|||||||
this.applicationMappingDAO = DeviceManagementDAOFactory.getApplicationMappingDAO();
|
this.applicationMappingDAO = DeviceManagementDAOFactory.getApplicationMappingDAO();
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplicationManagerProviderServiceImpl(DeviceManagementPluginRepository pluginRepository, boolean testMode) {
|
ApplicationManagerProviderServiceImpl(DeviceManagementPluginRepository pluginRepository) {
|
||||||
this.pluginRepository = pluginRepository;
|
this.pluginRepository = pluginRepository;
|
||||||
this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
|
this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
|
||||||
this.applicationDAO = DeviceManagementDAOFactory.getApplicationDAO();
|
this.applicationDAO = DeviceManagementDAOFactory.getApplicationDAO();
|
||||||
this.applicationMappingDAO = DeviceManagementDAOFactory.getApplicationMappingDAO();
|
this.applicationMappingDAO = DeviceManagementDAOFactory.getApplicationMappingDAO();
|
||||||
isTest = testMode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -124,10 +122,8 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void updateInstalledApplicationListOfDevice(
|
public void updateInstalledApplicationListOfDevice(
|
||||||
DeviceIdentifier deviceIdentifier, List<Application> applications) throws ApplicationManagementException {
|
DeviceIdentifier deviceIdentifier, List<Application> applications) throws ApplicationManagementException {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private OAuthConsumerAppDTO getAppInfo() throws ApplicationManagementException {
|
private OAuthConsumerAppDTO getAppInfo() throws ApplicationManagementException {
|
||||||
@ -191,8 +187,8 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem
|
|||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("num of apps installed:" + installedAppList.size());
|
log.debug("num of apps installed:" + installedAppList.size());
|
||||||
}
|
}
|
||||||
List<Application> appsToAdd = new ArrayList<Application>();
|
List<Application> appsToAdd = new ArrayList<>();
|
||||||
List<Integer> appIdsToRemove = new ArrayList<Integer>();
|
List<Integer> appIdsToRemove = new ArrayList<>();
|
||||||
|
|
||||||
for (Application installedApp : installedAppList) {
|
for (Application installedApp : installedAppList) {
|
||||||
if (!applications.contains(installedApp)) {
|
if (!applications.contains(installedApp)) {
|
||||||
@ -231,24 +227,16 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem
|
|||||||
}
|
}
|
||||||
applicationMappingDAO.removeApplicationMapping(device.getId(), appIdsToRemove, tenantId);
|
applicationMappingDAO.removeApplicationMapping(device.getId(), appIdsToRemove, tenantId);
|
||||||
DeviceManagementDAOFactory.commitTransaction();
|
DeviceManagementDAOFactory.commitTransaction();
|
||||||
} catch (DeviceManagementDAOException deviceDaoEx) {
|
} catch (DeviceManagementDAOException | TransactionManagementException e) {
|
||||||
String errorMsg = "Error occurred saving application list to the device";
|
DeviceManagementDAOFactory.rollbackTransaction();
|
||||||
log.error(errorMsg + ":" + deviceIdentifier.toString());
|
throw new ApplicationManagementException("Error occurred saving application list to the device", e);
|
||||||
try {
|
|
||||||
DeviceManagementDAOFactory.rollbackTransaction();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.error("Error occurred while roll back transaction", e);
|
|
||||||
}
|
|
||||||
throw new ApplicationManagementException(errorMsg, deviceDaoEx);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Application> getApplicationListForDevice(
|
public List<Application> getApplicationListForDevice(
|
||||||
DeviceIdentifier deviceId) throws ApplicationManagementException {
|
DeviceIdentifier deviceId) throws ApplicationManagementException {
|
||||||
Device device = null;
|
Device device;
|
||||||
try {
|
try {
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||||
device = deviceDAO.getDevice(deviceId, tenantId);
|
device = deviceDAO.getDevice(deviceId, tenantId);
|
||||||
@ -278,4 +266,5 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem
|
|||||||
deviceManagementService.getType() + "'", e);
|
deviceManagementService.getType() + "'", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,6 +20,7 @@ package org.wso2.carbon.device.mgt.core.dao;
|
|||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.device.mgt.common.TransactionManagementException;
|
||||||
import org.wso2.carbon.device.mgt.core.config.datasource.DataSourceConfig;
|
import org.wso2.carbon.device.mgt.core.config.datasource.DataSourceConfig;
|
||||||
import org.wso2.carbon.device.mgt.core.config.datasource.JNDILookupDefinition;
|
import org.wso2.carbon.device.mgt.core.config.datasource.JNDILookupDefinition;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.impl.*;
|
import org.wso2.carbon.device.mgt.core.dao.impl.*;
|
||||||
@ -33,17 +34,17 @@ import java.util.List;
|
|||||||
|
|
||||||
public class DeviceManagementDAOFactory {
|
public class DeviceManagementDAOFactory {
|
||||||
|
|
||||||
private static DataSource dataSource;
|
private static DataSource dataSource;
|
||||||
private static final Log log = LogFactory.getLog(DeviceManagementDAOFactory.class);
|
private static final Log log = LogFactory.getLog(DeviceManagementDAOFactory.class);
|
||||||
private static ThreadLocal<Connection> currentConnection = new ThreadLocal<Connection>();
|
private static ThreadLocal<Connection> currentConnection = new ThreadLocal<Connection>();
|
||||||
|
|
||||||
public static DeviceDAO getDeviceDAO() {
|
public static DeviceDAO getDeviceDAO() {
|
||||||
return new DeviceDAOImpl();
|
return new DeviceDAOImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DeviceTypeDAO getDeviceTypeDAO() {
|
public static DeviceTypeDAO getDeviceTypeDAO() {
|
||||||
return new DeviceTypeDAOImpl();
|
return new DeviceTypeDAOImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static EnrolmentDAO getEnrollmentDAO() {
|
public static EnrolmentDAO getEnrollmentDAO() {
|
||||||
return new EnrolmentDAOImpl();
|
return new EnrolmentDAOImpl();
|
||||||
@ -57,56 +58,36 @@ public class DeviceManagementDAOFactory {
|
|||||||
return new ApplicationMappingDAOImpl();
|
return new ApplicationMappingDAOImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void init(DataSourceConfig config) {
|
public static void init(DataSourceConfig config) {
|
||||||
dataSource = resolveDataSource(config);
|
dataSource = resolveDataSource(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void init(DataSource dtSource) {
|
public static void init(DataSource dtSource) {
|
||||||
dataSource = dtSource;
|
dataSource = dtSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void beginTransaction() throws DeviceManagementDAOException {
|
public static void beginTransaction() throws TransactionManagementException {
|
||||||
try {
|
try {
|
||||||
Connection conn = dataSource.getConnection();
|
Connection conn = dataSource.getConnection();
|
||||||
conn.setAutoCommit(false);
|
conn.setAutoCommit(false);
|
||||||
currentConnection.set(conn);
|
currentConnection.set(conn);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while retrieving config.datasource connection", e);
|
throw new TransactionManagementException("Error occurred while retrieving config.datasource connection", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void openConnection() throws DeviceManagementDAOException {
|
public static void openConnection() throws SQLException {
|
||||||
try {
|
currentConnection.set(dataSource.getConnection());
|
||||||
currentConnection.set(dataSource.getConnection());
|
|
||||||
} catch (SQLException e) {
|
|
||||||
throw new DeviceManagementDAOException("Error occurred while acquiring config.datasource connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Connection getConnection() throws DeviceManagementDAOException {
|
public static Connection getConnection() throws SQLException {
|
||||||
if (currentConnection.get() == null) {
|
if (currentConnection.get() == null) {
|
||||||
try {
|
currentConnection.set(dataSource.getConnection());
|
||||||
currentConnection.set(dataSource.getConnection());
|
|
||||||
} catch (SQLException e) {
|
|
||||||
throw new DeviceManagementDAOException("Error occurred while retrieving data source connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return currentConnection.get();
|
return currentConnection.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void closeConnection() throws DeviceManagementDAOException {
|
public static void commitTransaction() throws TransactionManagementException {
|
||||||
Connection con = currentConnection.get();
|
|
||||||
if (con != null) {
|
|
||||||
try {
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
|
||||||
log.warn("Error occurred while close the connection");
|
|
||||||
}
|
|
||||||
currentConnection.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void commitTransaction() throws DeviceManagementDAOException {
|
|
||||||
try {
|
try {
|
||||||
Connection conn = currentConnection.get();
|
Connection conn = currentConnection.get();
|
||||||
if (conn != null) {
|
if (conn != null) {
|
||||||
@ -118,11 +99,11 @@ public class DeviceManagementDAOFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while committing the transaction", e);
|
throw new TransactionManagementException("Error occurred while committing the transaction", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void rollbackTransaction() throws DeviceManagementDAOException {
|
public static void rollbackTransaction() {
|
||||||
try {
|
try {
|
||||||
Connection conn = currentConnection.get();
|
Connection conn = currentConnection.get();
|
||||||
if (conn != null) {
|
if (conn != null) {
|
||||||
@ -134,43 +115,55 @@ public class DeviceManagementDAOFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while rollbacking the transaction", e);
|
log.warn("Error occurred while rollbacking the transaction", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void closeConnection() {
|
||||||
|
Connection con = currentConnection.get();
|
||||||
|
if (con != null) {
|
||||||
|
try {
|
||||||
|
con.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.warn("Error occurred while close the connection");
|
||||||
|
}
|
||||||
|
currentConnection.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resolve data source from the data source definition
|
* Resolve data source from the data source definition
|
||||||
*
|
*
|
||||||
* @param config data source configuration
|
* @param config data source configuration
|
||||||
* @return data source resolved from the data source definition
|
* @return data source resolved from the data source definition
|
||||||
*/
|
*/
|
||||||
private static DataSource resolveDataSource(DataSourceConfig config) {
|
private static DataSource resolveDataSource(DataSourceConfig config) {
|
||||||
DataSource dataSource = null;
|
DataSource dataSource = null;
|
||||||
if (config == null) {
|
if (config == null) {
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"Device Management Repository data source configuration " + "is null and " +
|
"Device Management Repository data source configuration " + "is null and " +
|
||||||
"thus, is not initialized");
|
"thus, is not initialized");
|
||||||
}
|
}
|
||||||
JNDILookupDefinition jndiConfig = config.getJndiLookupDefinition();
|
JNDILookupDefinition jndiConfig = config.getJndiLookupDefinition();
|
||||||
if (jndiConfig != null) {
|
if (jndiConfig != null) {
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Initializing Device Management Repository data source using the JNDI " +
|
log.debug("Initializing Device Management Repository data source using the JNDI " +
|
||||||
"Lookup Definition");
|
"Lookup Definition");
|
||||||
}
|
}
|
||||||
List<JNDILookupDefinition.JNDIProperty> jndiPropertyList =
|
List<JNDILookupDefinition.JNDIProperty> jndiPropertyList =
|
||||||
jndiConfig.getJndiProperties();
|
jndiConfig.getJndiProperties();
|
||||||
if (jndiPropertyList != null) {
|
if (jndiPropertyList != null) {
|
||||||
Hashtable<Object, Object> jndiProperties = new Hashtable<Object, Object>();
|
Hashtable<Object, Object> jndiProperties = new Hashtable<Object, Object>();
|
||||||
for (JNDILookupDefinition.JNDIProperty prop : jndiPropertyList) {
|
for (JNDILookupDefinition.JNDIProperty prop : jndiPropertyList) {
|
||||||
jndiProperties.put(prop.getName(), prop.getValue());
|
jndiProperties.put(prop.getName(), prop.getValue());
|
||||||
}
|
}
|
||||||
dataSource = DeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), jndiProperties);
|
dataSource = DeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), jndiProperties);
|
||||||
} else {
|
} else {
|
||||||
dataSource = DeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), null);
|
dataSource = DeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return dataSource;
|
return dataSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -181,7 +181,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Connection getConnection() throws DeviceManagementDAOException {
|
private Connection getConnection() throws SQLException {
|
||||||
return DeviceManagementDAOFactory.getConnection();
|
return DeviceManagementDAOFactory.getConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -129,9 +129,8 @@ public class ApplicationMappingDAOImpl implements ApplicationMappingDAO {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Connection getConnection() throws DeviceManagementDAOException {
|
private Connection getConnection() throws SQLException {
|
||||||
return DeviceManagementDAOFactory.getConnection();
|
return DeviceManagementDAOFactory.getConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -237,7 +237,7 @@ public class DeviceDAOImpl implements DeviceDAO {
|
|||||||
return devices;
|
return devices;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Connection getConnection() throws DeviceManagementDAOException {
|
private Connection getConnection() throws SQLException {
|
||||||
return DeviceManagementDAOFactory.getConnection();
|
return DeviceManagementDAOFactory.getConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,6 +19,7 @@ package org.wso2.carbon.device.mgt.core.dao.impl;
|
|||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.device.mgt.common.TransactionManagementException;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceTypeDAO;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceTypeDAO;
|
||||||
@ -62,7 +63,7 @@ public class DeviceTypeDAOImpl implements DeviceTypeDAO {
|
|||||||
Connection conn;
|
Connection conn;
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
List<DeviceType> deviceTypes = new ArrayList<DeviceType>();;
|
List<DeviceType> deviceTypes = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String sql = "SELECT ID AS DEVICE_TYPE_ID, NAME AS DEVICE_TYPE FROM DM_DEVICE_TYPE";
|
String sql = "SELECT ID AS DEVICE_TYPE_ID, NAME AS DEVICE_TYPE FROM DM_DEVICE_TYPE";
|
||||||
@ -141,7 +142,7 @@ public class DeviceTypeDAOImpl implements DeviceTypeDAO {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Connection getConnection() throws DeviceManagementDAOException {
|
private Connection getConnection() throws SQLException {
|
||||||
return DeviceManagementDAOFactory.getConnection();
|
return DeviceManagementDAOFactory.getConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -199,7 +199,7 @@ public class EnrolmentDAOImpl implements EnrolmentDAO {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Connection getConnection() throws DeviceManagementDAOException {
|
private Connection getConnection() throws SQLException {
|
||||||
return DeviceManagementDAOFactory.getConnection();
|
return DeviceManagementDAOFactory.getConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -37,18 +37,18 @@ import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
|||||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent;
|
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent;
|
||||||
import org.wso2.carbon.device.mgt.core.internal.EmailServiceDataHolder;
|
import org.wso2.carbon.device.mgt.core.internal.EmailServiceDataHolder;
|
||||||
import org.wso2.carbon.device.mgt.core.internal.PluginInitializationListener;
|
import org.wso2.carbon.device.mgt.core.internal.PluginInitializationListener;
|
||||||
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
|
||||||
import org.wso2.carbon.user.api.UserStoreException;
|
import org.wso2.carbon.user.api.UserStoreException;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLDecoder;
|
import java.net.URLDecoder;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class DeviceManagementProviderServiceImpl implements DeviceManagementProviderService,
|
public class DeviceManagementProviderServiceImpl implements DeviceManagementProviderService,
|
||||||
PluginInitializationListener {
|
PluginInitializationListener {
|
||||||
|
|
||||||
private DeviceDAO deviceDAO;
|
private DeviceDAO deviceDAO;
|
||||||
private DeviceTypeDAO deviceTypeDAO;
|
private DeviceTypeDAO deviceTypeDAO;
|
||||||
@ -56,10 +56,8 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
private DeviceManagementPluginRepository pluginRepository;
|
private DeviceManagementPluginRepository pluginRepository;
|
||||||
|
|
||||||
private static Log log = LogFactory.getLog(DeviceManagementProviderServiceImpl.class);
|
private static Log log = LogFactory.getLog(DeviceManagementProviderServiceImpl.class);
|
||||||
private int tenantId;
|
|
||||||
|
|
||||||
public DeviceManagementProviderServiceImpl() {
|
public DeviceManagementProviderServiceImpl() {
|
||||||
|
|
||||||
this.pluginRepository = new DeviceManagementPluginRepository();
|
this.pluginRepository = new DeviceManagementPluginRepository();
|
||||||
initDataAccessObjects();
|
initDataAccessObjects();
|
||||||
/* Registering a listener to retrieve events when some device management service plugin is installed after
|
/* Registering a listener to retrieve events when some device management service plugin is installed after
|
||||||
@ -67,16 +65,6 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
DeviceManagementServiceComponent.registerPluginInitializationListener(this);
|
DeviceManagementServiceComponent.registerPluginInitializationListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This constructor calls from unit tests
|
|
||||||
*
|
|
||||||
* @param pluginRepo
|
|
||||||
*/
|
|
||||||
DeviceManagementProviderServiceImpl(DeviceManagementPluginRepository pluginRepo, boolean test) {
|
|
||||||
this.pluginRepository = pluginRepo;
|
|
||||||
initDataAccessObjects();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initDataAccessObjects() {
|
private void initDataAccessObjects() {
|
||||||
this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
|
this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
|
||||||
this.deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO();
|
this.deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO();
|
||||||
@ -116,70 +104,72 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
DeviceManager dms =
|
DeviceManager dms =
|
||||||
this.getPluginRepository().getDeviceManagementService(device.getType()).getDeviceManager();
|
this.getPluginRepository().getDeviceManagementService(device.getType()).getDeviceManager();
|
||||||
dms.enrollDevice(device);
|
dms.enrollDevice(device);
|
||||||
try {
|
|
||||||
if (dms.isClaimable(deviceIdentifier)) {
|
|
||||||
device.getEnrolmentInfo().setStatus(EnrolmentInfo.Status.INACTIVE);
|
|
||||||
} else {
|
|
||||||
device.getEnrolmentInfo().setStatus(EnrolmentInfo.Status.ACTIVE);
|
|
||||||
}
|
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
|
||||||
|
|
||||||
Device existingDevice = this.getDevice(deviceIdentifier);
|
if (dms.isClaimable(deviceIdentifier)) {
|
||||||
|
device.getEnrolmentInfo().setStatus(EnrolmentInfo.Status.INACTIVE);
|
||||||
|
} else {
|
||||||
|
device.getEnrolmentInfo().setStatus(EnrolmentInfo.Status.ACTIVE);
|
||||||
|
}
|
||||||
|
int tenantId = this.getTenantId();
|
||||||
|
|
||||||
if (existingDevice != null) {
|
Device existingDevice = this.getDevice(deviceIdentifier);
|
||||||
EnrolmentInfo existingEnrolmentInfo = existingDevice.getEnrolmentInfo();
|
|
||||||
EnrolmentInfo newEnrolmentInfo = device.getEnrolmentInfo();
|
if (existingDevice != null) {
|
||||||
if (existingEnrolmentInfo != null && newEnrolmentInfo != null) {
|
EnrolmentInfo existingEnrolmentInfo = existingDevice.getEnrolmentInfo();
|
||||||
if (existingEnrolmentInfo.equals(newEnrolmentInfo)) {
|
EnrolmentInfo newEnrolmentInfo = device.getEnrolmentInfo();
|
||||||
device.getEnrolmentInfo().setDateOfEnrolment(existingEnrolmentInfo.getDateOfEnrolment());
|
if (existingEnrolmentInfo != null && newEnrolmentInfo != null) {
|
||||||
this.modifyEnrollment(device);
|
if (existingEnrolmentInfo.equals(newEnrolmentInfo)) {
|
||||||
status = true;
|
device.getEnrolmentInfo().setDateOfEnrolment(existingEnrolmentInfo.getDateOfEnrolment());
|
||||||
} else {
|
this.modifyEnrollment(device);
|
||||||
this.setStatus(deviceIdentifier, existingEnrolmentInfo.getOwner(), EnrolmentInfo.Status.INACTIVE);
|
status = true;
|
||||||
|
} else {
|
||||||
|
this.setStatus(deviceIdentifier, existingEnrolmentInfo.getOwner(), EnrolmentInfo.Status.INACTIVE);
|
||||||
|
int enrolmentId;
|
||||||
|
try {
|
||||||
DeviceManagementDAOFactory.beginTransaction();
|
DeviceManagementDAOFactory.beginTransaction();
|
||||||
int enrolmentId = enrolmentDAO.addEnrollment(existingDevice.getId(), newEnrolmentInfo, tenantId);
|
enrolmentId = enrolmentDAO.addEnrollment(existingDevice.getId(), newEnrolmentInfo, tenantId);
|
||||||
DeviceManagementDAOFactory.commitTransaction();
|
DeviceManagementDAOFactory.commitTransaction();
|
||||||
|
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("An enrolment is successfully updated with the id '" + enrolmentId +
|
log.debug("An enrolment is successfully updated with the id '" + enrolmentId +
|
||||||
"' associated with " + "the device identified by key '" + device.getDeviceIdentifier() +
|
"' associated with " + "the device identified by key '" +
|
||||||
"', which belongs to " + "platform '" + device.getType() + " upon the user '" +
|
device.getDeviceIdentifier() + "', which belongs to " + "platform '" +
|
||||||
device.getEnrolmentInfo().getOwner() + "'");
|
device.getType() + " upon the user '" + device.getEnrolmentInfo().getOwner() + "'");
|
||||||
}
|
}
|
||||||
status = true;
|
} catch (TransactionManagementException | DeviceManagementDAOException e) {
|
||||||
|
DeviceManagementDAOFactory.rollbackTransaction();
|
||||||
|
log.error("Error occurred while adding enrolment related metadata", e);
|
||||||
|
} finally {
|
||||||
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
}
|
}
|
||||||
|
status = true;
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
} else {
|
||||||
|
int enrolmentId = 0;
|
||||||
|
try {
|
||||||
DeviceManagementDAOFactory.beginTransaction();
|
DeviceManagementDAOFactory.beginTransaction();
|
||||||
DeviceType type = deviceTypeDAO.getDeviceType(device.getType());
|
DeviceType type = deviceTypeDAO.getDeviceType(device.getType());
|
||||||
int deviceId = deviceDAO.addDevice(type.getId(), device, tenantId);
|
int deviceId = deviceDAO.addDevice(type.getId(), device, tenantId);
|
||||||
int enrolmentId = enrolmentDAO.addEnrollment(deviceId, device.getEnrolmentInfo(), tenantId);
|
enrolmentId = enrolmentDAO.addEnrollment(deviceId, device.getEnrolmentInfo(), tenantId);
|
||||||
DeviceManagementDAOFactory.commitTransaction();
|
DeviceManagementDAOFactory.commitTransaction();
|
||||||
|
} catch (DeviceManagementDAOException | TransactionManagementException e) {
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("An enrolment is successfully created with the id '" + enrolmentId + "' associated with " +
|
|
||||||
"the device identified by key '" + device.getDeviceIdentifier() + "', which belongs to " +
|
|
||||||
"platform '" + device.getType() + " upon the user '" +
|
|
||||||
device.getEnrolmentInfo().getOwner() + "'");
|
|
||||||
}
|
|
||||||
status = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
try {
|
|
||||||
DeviceManagementDAOFactory.rollbackTransaction();
|
DeviceManagementDAOFactory.rollbackTransaction();
|
||||||
} catch (DeviceManagementDAOException e1) {
|
log.error("Error occurred while adding metadata of '" + device.getType() + "' device carrying " +
|
||||||
log.warn("Error occurred while roll-backing the current transaction", e);
|
"the identifier '" + device.getDeviceIdentifier() + "'", e);
|
||||||
}
|
} finally {
|
||||||
throw new DeviceManagementException("Error occurred while enrolling the device " +
|
|
||||||
"'" + device.getId() + "'", e);
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("An enrolment is successfully created with the id '" + enrolmentId + "' associated with " +
|
||||||
|
"the device identified by key '" + device.getDeviceIdentifier() + "', which belongs to " +
|
||||||
|
"platform '" + device.getType() + " upon the user '" +
|
||||||
|
device.getEnrolmentInfo().getOwner() + "'");
|
||||||
|
}
|
||||||
|
status = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,27 +180,20 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
this.getPluginRepository().getDeviceManagementService(device.getType()).getDeviceManager();
|
this.getPluginRepository().getDeviceManagementService(device.getType()).getDeviceManager();
|
||||||
boolean status = dms.modifyEnrollment(device);
|
boolean status = dms.modifyEnrollment(device);
|
||||||
try {
|
try {
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
int tenantId = this.getTenantId();
|
||||||
DeviceManagementDAOFactory.beginTransaction();
|
DeviceManagementDAOFactory.beginTransaction();
|
||||||
|
|
||||||
DeviceType type = deviceTypeDAO.getDeviceType(device.getType());
|
DeviceType type = deviceTypeDAO.getDeviceType(device.getType());
|
||||||
int deviceId = deviceDAO.updateDevice(type.getId(), device, tenantId);
|
int deviceId = deviceDAO.updateDevice(type.getId(), device, tenantId);
|
||||||
enrolmentDAO.updateEnrollment(deviceId, device.getEnrolmentInfo(), tenantId);
|
enrolmentDAO.updateEnrollment(deviceId, device.getEnrolmentInfo(), tenantId);
|
||||||
|
|
||||||
DeviceManagementDAOFactory.commitTransaction();
|
DeviceManagementDAOFactory.commitTransaction();
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException | TransactionManagementException e) {
|
||||||
try {
|
DeviceManagementDAOFactory.rollbackTransaction();
|
||||||
DeviceManagementDAOFactory.rollbackTransaction();
|
|
||||||
} catch (DeviceManagementDAOException e1) {
|
|
||||||
log.warn("Error occurred while roll-backing the current transaction", e);
|
|
||||||
}
|
|
||||||
throw new DeviceManagementException("Error occurred while modifying the device " +
|
throw new DeviceManagementException("Error occurred while modifying the device " +
|
||||||
"'" + device.getId() + "'", e);
|
"'" + device.getId() + "'", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@ -218,10 +201,12 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
@Override
|
@Override
|
||||||
public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
|
public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||||
|
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
int tenantId = this.getTenantId();
|
||||||
DeviceManager dms =
|
DeviceManager dms =
|
||||||
this.getPluginRepository().getDeviceManagementService(deviceId.getType()).getDeviceManager();
|
this.getPluginRepository().getDeviceManagementService(deviceId.getType()).getDeviceManager();
|
||||||
try {
|
try {
|
||||||
|
DeviceManagementDAOFactory.beginTransaction();
|
||||||
|
|
||||||
Device device = deviceDAO.getDevice(deviceId, tenantId);
|
Device device = deviceDAO.getDevice(deviceId, tenantId);
|
||||||
DeviceType deviceType = deviceTypeDAO.getDeviceType(device.getType());
|
DeviceType deviceType = deviceTypeDAO.getDeviceType(device.getType());
|
||||||
|
|
||||||
@ -230,11 +215,13 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
enrolmentDAO.updateEnrollment(device.getId(), device.getEnrolmentInfo(), tenantId);
|
enrolmentDAO.updateEnrollment(device.getId(), device.getEnrolmentInfo(), tenantId);
|
||||||
deviceDAO.updateDevice(deviceType.getId(), device, tenantId);
|
deviceDAO.updateDevice(deviceType.getId(), device, tenantId);
|
||||||
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
DeviceManagementDAOFactory.commitTransaction();
|
||||||
String errorMsg = "Error occurred while fetch device for device Identifier:";
|
} catch (DeviceManagementDAOException | TransactionManagementException e) {
|
||||||
log.error(errorMsg + deviceId.toString(), e);
|
DeviceManagementDAOFactory.rollbackTransaction();
|
||||||
throw new DeviceManagementException(errorMsg, e);
|
throw new DeviceManagementException("Error occurred while disenrolling '" + deviceId.getType() +
|
||||||
|
"' device with the identifier '" + deviceId.getId() + "'", e);
|
||||||
|
} finally {
|
||||||
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
}
|
}
|
||||||
return dms.disenrollDevice(deviceId);
|
return dms.disenrollDevice(deviceId);
|
||||||
}
|
}
|
||||||
@ -262,26 +249,22 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Device> getAllDevices() throws DeviceManagementException {
|
public List<Device> getAllDevices() throws DeviceManagementException {
|
||||||
List<Device> devices = new ArrayList<Device>();
|
List<Device> devices = new ArrayList<>();
|
||||||
List<Device> allDevices;
|
List<Device> allDevices;
|
||||||
try {
|
try {
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
DeviceManagementDAOFactory.getConnection();
|
|
||||||
allDevices = deviceDAO.getDevices(tenantId);
|
allDevices = deviceDAO.getDevices(this.getTenantId());
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
throw new DeviceManagementException("Error occurred while retrieving device list pertaining to " +
|
throw new DeviceManagementException("Error occurred while retrieving device list pertaining to " +
|
||||||
"the current tenant", e);
|
"the current tenant", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (Device device : allDevices) {
|
for (Device device : allDevices) {
|
||||||
DeviceManagementService managementService = this.getPluginRepository().
|
DeviceManagementService managementService = this.getPluginRepository().
|
||||||
getDeviceManagementService(device.getType());
|
getDeviceManagementService(device.getType());
|
||||||
if(managementService != null) {
|
if (managementService != null) {
|
||||||
Device dmsDevice = managementService.getDeviceManager().getDevice(
|
Device dmsDevice = managementService.getDeviceManager().getDevice(
|
||||||
new DeviceIdentifier(device.getDeviceIdentifier(), device.getType()));
|
new DeviceIdentifier(device.getDeviceIdentifier(), device.getType()));
|
||||||
if (dmsDevice != null) {
|
if (dmsDevice != null) {
|
||||||
@ -296,21 +279,17 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Device> getAllDevices(String type) throws DeviceManagementException {
|
public List<Device> getAllDevices(String type) throws DeviceManagementException {
|
||||||
List<Device> devices = new ArrayList<Device>();
|
List<Device> devices = new ArrayList<>();
|
||||||
List<Device> allDevices;
|
List<Device> allDevices;
|
||||||
try {
|
try {
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
DeviceManagementDAOFactory.getConnection();
|
|
||||||
allDevices = deviceDAO.getDevices(type, tenantId);
|
allDevices = deviceDAO.getDevices(type, this.getTenantId());
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
throw new DeviceManagementException("Error occurred while retrieving all devices of type '" +
|
throw new DeviceManagementException("Error occurred while retrieving all devices of type '" +
|
||||||
type + "' that are being managed within the scope of current tenant", e);
|
type + "' that are being managed within the scope of current tenant", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Device device : allDevices) {
|
for (Device device : allDevices) {
|
||||||
@ -332,7 +311,6 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
@Override
|
@Override
|
||||||
public void sendEnrolmentInvitation(EmailMessageProperties emailMessageProperties)
|
public void sendEnrolmentInvitation(EmailMessageProperties emailMessageProperties)
|
||||||
throws DeviceManagementException {
|
throws DeviceManagementException {
|
||||||
|
|
||||||
List<NotificationMessages> notificationMessages =
|
List<NotificationMessages> notificationMessages =
|
||||||
DeviceConfigurationManager.getInstance().getNotificationMessagesConfig().getNotificationMessagesList();
|
DeviceConfigurationManager.getInstance().getNotificationMessagesConfig().getNotificationMessagesList();
|
||||||
|
|
||||||
@ -347,7 +325,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
for (NotificationMessages notificationMessage : notificationMessages) {
|
for (NotificationMessages notificationMessage : notificationMessages) {
|
||||||
if (org.wso2.carbon.device.mgt.core.DeviceManagementConstants.EmailNotifications.ENROL_NOTIFICATION_TYPE
|
if (org.wso2.carbon.device.mgt.core.DeviceManagementConstants.EmailNotifications.ENROL_NOTIFICATION_TYPE
|
||||||
.equals(
|
.equals(
|
||||||
notificationMessage.getType())) {
|
notificationMessage.getType())) {
|
||||||
messageHeader = notificationMessage.getHeader();
|
messageHeader = notificationMessage.getHeader();
|
||||||
messageBody = notificationMessage.getBody();
|
messageBody = notificationMessage.getBody();
|
||||||
messageFooter1 = notificationMessage.getFooterLine1();
|
messageFooter1 = notificationMessage.getFooterLine1();
|
||||||
@ -363,13 +341,13 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.FIRST_NAME + "\\}",
|
messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.FIRST_NAME + "\\}",
|
||||||
URLEncoder.encode(emailMessageProperties.getFirstName(),
|
URLEncoder.encode(emailMessageProperties.getFirstName(),
|
||||||
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
||||||
messageBody = messageBody.trim() + System.getProperty("line.separator") +
|
messageBody = messageBody.trim() + System.getProperty("line.separator") +
|
||||||
System.getProperty("line.separator") + url.replaceAll("\\{"
|
System.getProperty("line.separator") + url.replaceAll("\\{"
|
||||||
+ EmailConstants.EnrolmentEmailConstants.DOWNLOAD_URL + "\\}",
|
+ EmailConstants.EnrolmentEmailConstants.DOWNLOAD_URL + "\\}",
|
||||||
URLDecoder.decode(emailMessageProperties.getEnrolmentUrl(),
|
URLDecoder.decode(emailMessageProperties.getEnrolmentUrl(),
|
||||||
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
||||||
|
|
||||||
messageBuilder.append(messageHeader).append(System.getProperty("line.separator"))
|
messageBuilder.append(messageHeader).append(System.getProperty("line.separator"))
|
||||||
.append(System.getProperty("line.separator"));
|
.append(System.getProperty("line.separator"));
|
||||||
@ -377,12 +355,12 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
messageBuilder.append(System.getProperty("line.separator")).append(System.getProperty("line.separator"));
|
messageBuilder.append(System.getProperty("line.separator")).append(System.getProperty("line.separator"));
|
||||||
messageBuilder.append(messageFooter1.trim())
|
messageBuilder.append(messageFooter1.trim())
|
||||||
.append(System.getProperty("line.separator")).append(messageFooter2.trim()).append(System
|
.append(System.getProperty("line.separator")).append(messageFooter2.trim()).append(System
|
||||||
.getProperty("line.separator")).append(messageFooter3.trim());
|
.getProperty("line.separator")).append(messageFooter3.trim());
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("IO error in processing enrol email message " + emailMessageProperties);
|
log.error("IO error in processing enrol email message " + emailMessageProperties);
|
||||||
throw new DeviceManagementException("Error replacing tags in email template '" +
|
throw new DeviceManagementException("Error replacing tags in email template '" +
|
||||||
emailMessageProperties.getSubject() + "'", e);
|
emailMessageProperties.getSubject() + "'", e);
|
||||||
}
|
}
|
||||||
emailMessageProperties.setMessageBody(messageBuilder.toString());
|
emailMessageProperties.setMessageBody(messageBuilder.toString());
|
||||||
emailMessageProperties.setSubject(subject);
|
emailMessageProperties.setSubject(subject);
|
||||||
@ -420,23 +398,23 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.FIRST_NAME + "\\}",
|
messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.FIRST_NAME + "\\}",
|
||||||
URLEncoder.encode(emailMessageProperties.getFirstName(),
|
URLEncoder.encode(emailMessageProperties.getFirstName(),
|
||||||
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
||||||
|
|
||||||
messageBody = messageBody.trim().replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants
|
messageBody = messageBody.trim().replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants
|
||||||
.USERNAME
|
.USERNAME
|
||||||
+ "\\}",
|
+ "\\}",
|
||||||
URLEncoder.encode(emailMessageProperties.getUserName(), EmailConstants.EnrolmentEmailConstants
|
URLEncoder.encode(emailMessageProperties.getUserName(), EmailConstants.EnrolmentEmailConstants
|
||||||
.ENCODED_SCHEME));
|
.ENCODED_SCHEME));
|
||||||
|
|
||||||
messageBody = messageBody.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.PASSWORD + "\\}",
|
messageBody = messageBody.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.PASSWORD + "\\}",
|
||||||
URLEncoder.encode(emailMessageProperties.getPassword(), EmailConstants.EnrolmentEmailConstants
|
URLEncoder.encode(emailMessageProperties.getPassword(), EmailConstants.EnrolmentEmailConstants
|
||||||
.ENCODED_SCHEME));
|
.ENCODED_SCHEME));
|
||||||
|
|
||||||
messageBody = messageBody + System.getProperty("line.separator") + url.replaceAll("\\{"
|
messageBody = messageBody + System.getProperty("line.separator") + url.replaceAll("\\{"
|
||||||
+ EmailConstants.EnrolmentEmailConstants.DOWNLOAD_URL + "\\}",
|
+ EmailConstants.EnrolmentEmailConstants.DOWNLOAD_URL + "\\}",
|
||||||
URLDecoder.decode(emailMessageProperties.getEnrolmentUrl(),
|
URLDecoder.decode(emailMessageProperties.getEnrolmentUrl(),
|
||||||
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
||||||
|
|
||||||
messageBuilder.append(messageHeader).append(System.getProperty("line.separator"));
|
messageBuilder.append(messageHeader).append(System.getProperty("line.separator"));
|
||||||
messageBuilder.append(messageBody).append(System.getProperty("line.separator")).append(
|
messageBuilder.append(messageBody).append(System.getProperty("line.separator")).append(
|
||||||
@ -447,7 +425,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("IO error in processing enrol email message " + emailMessageProperties);
|
log.error("IO error in processing enrol email message " + emailMessageProperties);
|
||||||
throw new DeviceManagementException("Error replacing tags in email template '" +
|
throw new DeviceManagementException("Error replacing tags in email template '" +
|
||||||
emailMessageProperties.getSubject() + "'", e);
|
emailMessageProperties.getSubject() + "'", e);
|
||||||
}
|
}
|
||||||
emailMessageProperties.setMessageBody(messageBuilder.toString());
|
emailMessageProperties.setMessageBody(messageBuilder.toString());
|
||||||
emailMessageProperties.setSubject(subject);
|
emailMessageProperties.setSubject(subject);
|
||||||
@ -458,23 +436,18 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
|
public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||||
Device device;
|
Device device;
|
||||||
try {
|
try {
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
device = deviceDAO.getDevice(deviceId, this.getTenantId());
|
||||||
device = deviceDAO.getDevice(deviceId, tenantId);
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException e) {
|
||||||
throw new DeviceManagementException("Error occurred while obtaining the device for id " +
|
throw new DeviceManagementException("Error occurred while obtaining the device for id " +
|
||||||
"'" + deviceId.getId() + "'", e);
|
"'" + deviceId.getId() + "'", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (device != null) {
|
if (device != null) {
|
||||||
// The changes made here to prevent unit tests getting failed. They failed because when running the unit
|
// The changes made here to prevent unit tests getting failed. They failed because when running the unit
|
||||||
// tests there is no osgi services. So getDeviceManager() returns a null.
|
// tests there is no osgi services. So getDeviceManager() returns a null.
|
||||||
DeviceManagementService service = this.getPluginRepository().getDeviceManagementService(deviceId.getType());
|
DeviceManagementService service = this.getPluginRepository().getDeviceManagementService(deviceId.getType());
|
||||||
if(service != null) {
|
if (service != null) {
|
||||||
DeviceManager dms = service.getDeviceManager();
|
DeviceManager dms = service.getDeviceManager();
|
||||||
Device pluginSpecificInfo = dms.getDevice(deviceId);
|
Device pluginSpecificInfo = dms.getDevice(deviceId);
|
||||||
if (pluginSpecificInfo != null) {
|
if (pluginSpecificInfo != null) {
|
||||||
@ -513,25 +486,17 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.beginTransaction();
|
DeviceManagementDAOFactory.beginTransaction();
|
||||||
|
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
int tenantId = this.getTenantId();
|
||||||
Device device = deviceDAO.getDevice(deviceId, tenantId);
|
Device device = deviceDAO.getDevice(deviceId, tenantId);
|
||||||
boolean success = enrolmentDAO.setStatus(device.getId(), currentOwner, status, tenantId);
|
boolean success = enrolmentDAO.setStatus(device.getId(), currentOwner, status, tenantId);
|
||||||
|
|
||||||
DeviceManagementDAOFactory.commitTransaction();
|
DeviceManagementDAOFactory.commitTransaction();
|
||||||
return success;
|
return success;
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException | TransactionManagementException e) {
|
||||||
try {
|
DeviceManagementDAOFactory.rollbackTransaction();
|
||||||
DeviceManagementDAOFactory.rollbackTransaction();
|
|
||||||
} catch (DeviceManagementDAOException e1) {
|
|
||||||
log.warn("Error occurred while rollbacking the current transaction", e);
|
|
||||||
}
|
|
||||||
throw new DeviceManagementException("Error occurred while setting enrollment status", e);
|
throw new DeviceManagementException("Error occurred while setting enrollment status", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -565,7 +530,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int addOperation(Operation operation, List<DeviceIdentifier> devices) throws
|
public int addOperation(Operation operation, List<DeviceIdentifier> devices) throws
|
||||||
OperationManagementException {
|
OperationManagementException {
|
||||||
return DeviceManagementDataHolder.getInstance().getOperationManager().addOperation(operation, devices);
|
return DeviceManagementDataHolder.getInstance().getOperationManager().addOperation(operation, devices);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -617,21 +582,16 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Device> getDevicesOfUser(String username) throws DeviceManagementException {
|
public List<Device> getDevicesOfUser(String username) throws DeviceManagementException {
|
||||||
List<Device> devices = new ArrayList<Device>();
|
List<Device> devices = new ArrayList<>();
|
||||||
List<Device> userDevices;
|
List<Device> userDevices;
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.getConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
userDevices = deviceDAO.getDevicesOfUser(username, this.getTenantId());
|
||||||
userDevices = deviceDAO.getDevicesOfUser(username, tenantId);
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
throw new DeviceManagementException("Error occurred while retrieving the list of devices that " +
|
throw new DeviceManagementException("Error occurred while retrieving the list of devices that " +
|
||||||
"belong to the user '" + username + "'", e);
|
"belong to the user '" + username + "'", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Device device : userDevices) {
|
for (Device device : userDevices) {
|
||||||
@ -651,32 +611,28 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Device> getAllDevicesOfRole(String role) throws DeviceManagementException {
|
public List<Device> getAllDevicesOfRole(String role) throws DeviceManagementException {
|
||||||
List<Device> devices = new ArrayList<Device>();
|
List<Device> devices = new ArrayList<>();
|
||||||
|
|
||||||
String[] users;
|
String[] users;
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
int tenantId = this.getTenantId();
|
||||||
try {
|
try {
|
||||||
users = DeviceManagementDataHolder.getInstance().getRealmService().getTenantUserRealm(tenantId)
|
users = DeviceManagementDataHolder.getInstance().getRealmService().getTenantUserRealm(tenantId)
|
||||||
.getUserStoreManager().getUserListOfRole(role);
|
.getUserStoreManager().getUserListOfRole(role);
|
||||||
} catch (UserStoreException e) {
|
} catch (UserStoreException e) {
|
||||||
throw new DeviceManagementException("Error occurred while obtaining the users, who are assigned " +
|
throw new DeviceManagementException("Error occurred while obtaining the users, who are assigned " +
|
||||||
"with the role '" + role + "'", e);
|
"with the role '" + role + "'", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Device> userDevices;
|
List<Device> userDevices;
|
||||||
for (String user : users) {
|
for (String user : users) {
|
||||||
userDevices = new ArrayList<Device>();
|
userDevices = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.getConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
userDevices = deviceDAO.getDevicesOfUser(user, tenantId);
|
userDevices = deviceDAO.getDevicesOfUser(user, tenantId);
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
log.error("Error occurred while obtaining the devices of user '" + user + "'", e);
|
log.error("Error occurred while obtaining the devices of user '" + user + "'", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (Device device : userDevices) {
|
for (Device device : userDevices) {
|
||||||
Device dmsDevice =
|
Device dmsDevice =
|
||||||
@ -696,37 +652,27 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
@Override
|
@Override
|
||||||
public int getDeviceCount() throws DeviceManagementException {
|
public int getDeviceCount() throws DeviceManagementException {
|
||||||
try {
|
try {
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
DeviceManagementDAOFactory.getConnection();
|
return deviceDAO.getDeviceCount(this.getTenantId());
|
||||||
return deviceDAO.getDeviceCount(tenantId);
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
throw new DeviceManagementException("Error occurred while retrieving the device count", e);
|
throw new DeviceManagementException("Error occurred while retrieving the device count", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Device> getDevicesByName(String deviceName) throws DeviceManagementException {
|
public List<Device> getDevicesByName(String deviceName) throws DeviceManagementException {
|
||||||
List<Device> devices = new ArrayList<Device>();
|
List<Device> devices = new ArrayList<>();
|
||||||
List<Device> allDevices;
|
List<Device> allDevices;
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.getConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
allDevices = deviceDAO.getDevicesByName(deviceName, this.getTenantId());
|
||||||
allDevices = deviceDAO.getDevicesByName(deviceName, tenantId);
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
throw new DeviceManagementException("Error occurred while fetching the list of devices that matches to '"
|
throw new DeviceManagementException("Error occurred while fetching the list of devices that matches to '"
|
||||||
+ deviceName + "'", e);
|
+ deviceName + "'", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (Device device : allDevices) {
|
for (Device device : allDevices) {
|
||||||
Device dmsDevice =
|
Device dmsDevice =
|
||||||
@ -745,13 +691,11 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateDeviceEnrolmentInfo(Device device, EnrolmentInfo.Status status) throws DeviceManagementException {
|
public void updateDeviceEnrolmentInfo(Device device, EnrolmentInfo.Status status) throws DeviceManagementException {
|
||||||
|
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
|
||||||
try {
|
try {
|
||||||
DeviceType deviceType = deviceTypeDAO.getDeviceType(device.getType());
|
DeviceType deviceType = deviceTypeDAO.getDeviceType(device.getType());
|
||||||
device.getEnrolmentInfo().setDateOfLastUpdate(new Date().getTime());
|
device.getEnrolmentInfo().setDateOfLastUpdate(new Date().getTime());
|
||||||
device.getEnrolmentInfo().setStatus(status);
|
device.getEnrolmentInfo().setStatus(status);
|
||||||
deviceDAO.updateDevice(deviceType.getId(), device, tenantId);
|
deviceDAO.updateDevice(deviceType.getId(), device, this.getTenantId());
|
||||||
} catch (DeviceManagementDAOException deviceDaoEx) {
|
} catch (DeviceManagementDAOException deviceDaoEx) {
|
||||||
String errorMsg = "Error occured update device enrolment status : " + device.getId();
|
String errorMsg = "Error occured update device enrolment status : " + device.getId();
|
||||||
log.error(errorMsg, deviceDaoEx);
|
log.error(errorMsg, deviceDaoEx);
|
||||||
@ -765,7 +709,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
pluginRepository.addDeviceManagementProvider(deviceManagementService);
|
pluginRepository.addDeviceManagementProvider(deviceManagementService);
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
log.error("Error occurred while registering device management plugin '" +
|
log.error("Error occurred while registering device management plugin '" +
|
||||||
deviceManagementService.getType() + "'", e);
|
deviceManagementService.getType() + "'", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -775,27 +719,23 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
pluginRepository.removeDeviceManagementProvider(deviceManagementService);
|
pluginRepository.removeDeviceManagementProvider(deviceManagementService);
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
log.error("Error occurred while un-registering device management plugin '" +
|
log.error("Error occurred while un-registering device management plugin '" +
|
||||||
deviceManagementService.getType() + "'", e);
|
deviceManagementService.getType() + "'", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<Device> getDevicesByStatus(EnrolmentInfo.Status status) throws DeviceManagementException {
|
public List<Device> getDevicesByStatus(EnrolmentInfo.Status status) throws DeviceManagementException {
|
||||||
List<Device> devices = new ArrayList<Device>();
|
List<Device> devices = new ArrayList<>();
|
||||||
List<Device> allDevices;
|
List<Device> allDevices;
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.getConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
allDevices = deviceDAO.getDevicesByStatus(status, this.getTenantId());
|
||||||
allDevices = deviceDAO.getDevicesByStatus(status, tenantId);
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
throw new DeviceManagementException(
|
throw new DeviceManagementException(
|
||||||
"Error occurred while fetching the list of devices that matches to status: '" + status + "'", e);
|
"Error occurred while fetching the list of devices that matches to status: '" + status + "'", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Device device : allDevices) {
|
for (Device device : allDevices) {
|
||||||
@ -811,4 +751,9 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
}
|
}
|
||||||
return devices;
|
return devices;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getTenantId() {
|
||||||
|
return CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,7 +73,7 @@ public class ApplicationManagementProviderServiceTest {
|
|||||||
deviceIdentifier.setType(device.getType());
|
deviceIdentifier.setType(device.getType());
|
||||||
|
|
||||||
AppManagementConfig appManagementConfig = new AppManagementConfig();
|
AppManagementConfig appManagementConfig = new AppManagementConfig();
|
||||||
appMgtProvider = new ApplicationManagerProviderServiceImpl(deviceManagementPluginRepository, true);
|
appMgtProvider = new ApplicationManagerProviderServiceImpl(deviceManagementPluginRepository);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
appMgtProvider.updateApplicationListInstalledInDevice(deviceIdentifier, applications);
|
appMgtProvider.updateApplicationListInstalledInDevice(deviceIdentifier, applications);
|
||||||
|
|||||||
@ -27,6 +27,8 @@ import org.wso2.carbon.device.mgt.common.app.mgt.Application;
|
|||||||
import org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest;
|
import org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest;
|
||||||
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
public class ApplicationPersistenceTests extends BaseDeviceManagementTest {
|
public class ApplicationPersistenceTests extends BaseDeviceManagementTest {
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(ApplicationPersistenceTests.class);
|
private static final Log log = LogFactory.getLog(ApplicationPersistenceTests.class);
|
||||||
@ -34,21 +36,15 @@ public class ApplicationPersistenceTests extends BaseDeviceManagementTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAddApplication() {
|
public void testAddApplication() {
|
||||||
/* Initializing source application bean to be tested */
|
|
||||||
|
|
||||||
/* Adding dummy application to the application store */
|
/* Adding dummy application to the application store */
|
||||||
String testAppIdentifier = "test sample1";
|
String testAppIdentifier = "test sample1";
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
applicationDAO.addApplication(TestDataHolder.generateApplicationDummyData(testAppIdentifier), -1234);
|
applicationDAO.addApplication(TestDataHolder.generateApplicationDummyData(testAppIdentifier), -1234);
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
log.error("Error occurred while adding application test sample1", e);
|
log.error("Error occurred while adding application test sample1", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
/* Retrieving the application by its name */
|
/* Retrieving the application by its name */
|
||||||
Application target = null;
|
Application target = null;
|
||||||
@ -66,16 +62,16 @@ public class ApplicationPersistenceTests extends BaseDeviceManagementTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Application getApplication(String appIdentifier, int tenantId) throws DeviceManagementDAOException {
|
private Application getApplication(String appIdentifier, int tenantId) throws DeviceManagementDAOException {
|
||||||
|
Application application = null;
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
return applicationDAO.getApplication(appIdentifier, tenantId);
|
application = applicationDAO.getApplication(appIdentifier, tenantId);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.error("Error occurred while metadata corresponding to the application '" + appIdentifier + "'", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return application;
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
@ -83,4 +79,5 @@ public class ApplicationPersistenceTests extends BaseDeviceManagementTest {
|
|||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
this.initDatSource();
|
this.initDatSource();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -52,16 +52,12 @@ public class DevicePersistTests extends BaseDeviceManagementTest {
|
|||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
deviceTypeDAO.addDeviceType(deviceType);
|
deviceTypeDAO.addDeviceType(deviceType);
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
String msg = "Error occurred while adding device type '" + deviceType.getName() + "'";
|
String msg = "Error occurred while adding device type '" + deviceType.getName() + "'";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
Assert.fail(msg, e);
|
Assert.fail(msg, e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer targetTypeId = null;
|
Integer targetTypeId = null;
|
||||||
@ -89,17 +85,13 @@ public class DevicePersistTests extends BaseDeviceManagementTest {
|
|||||||
device.setId(deviceId);
|
device.setId(deviceId);
|
||||||
deviceDAO.addEnrollment(device, tenantId);
|
deviceDAO.addEnrollment(device, tenantId);
|
||||||
TestDataHolder.initialTestDevice = device;
|
TestDataHolder.initialTestDevice = device;
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
String msg = "Error occurred while adding '" + device.getType() + "' device with the identifier '" +
|
String msg = "Error occurred while adding '" + device.getType() + "' device with the identifier '" +
|
||||||
device.getDeviceIdentifier() + "'";
|
device.getDeviceIdentifier() + "'";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
Assert.fail(msg, e);
|
Assert.fail(msg, e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int targetId = -1;
|
int targetId = -1;
|
||||||
@ -176,17 +168,12 @@ public class DevicePersistTests extends BaseDeviceManagementTest {
|
|||||||
DeviceIdentifier deviceId = new DeviceIdentifier(device.getDeviceIdentifier(), device.getType());
|
DeviceIdentifier deviceId = new DeviceIdentifier(device.getDeviceIdentifier(), device.getType());
|
||||||
deviceDAO.setEnrolmentStatus(deviceId, device.getEnrolmentInfo().getOwner(), Status.ACTIVE,
|
deviceDAO.setEnrolmentStatus(deviceId, device.getEnrolmentInfo().getOwner(), Status.ACTIVE,
|
||||||
TestDataHolder.SUPER_TENANT_ID);
|
TestDataHolder.SUPER_TENANT_ID);
|
||||||
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
String msg = "Error occurred while setting enrolment status";
|
String msg = "Error occurred while setting enrolment status";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
Assert.fail(msg, e);
|
Assert.fail(msg, e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Status target = null;
|
Status target = null;
|
||||||
try {
|
try {
|
||||||
@ -210,15 +197,11 @@ public class DevicePersistTests extends BaseDeviceManagementTest {
|
|||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
DeviceIdentifier deviceId = new DeviceIdentifier(identifier, deviceType);
|
DeviceIdentifier deviceId = new DeviceIdentifier(identifier, deviceType);
|
||||||
return deviceDAO.getEnrolmentStatus(deviceId, device.getEnrolmentInfo().getOwner(), tenantId);
|
return deviceDAO.getEnrolmentStatus(deviceId, device.getEnrolmentInfo().getOwner(), tenantId);
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while retrieving the current status of the " +
|
throw new DeviceManagementDAOException("Error occurred while retrieving the current status of the " +
|
||||||
"enrolment", e);
|
"enrolment", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,6 +27,8 @@ import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
|||||||
import org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest;
|
import org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest;
|
||||||
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
public class EnrolmentPersistenceTests extends BaseDeviceManagementTest {
|
public class EnrolmentPersistenceTests extends BaseDeviceManagementTest {
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(EnrolmentPersistenceTests.class);
|
private static final Log log = LogFactory.getLog(EnrolmentPersistenceTests.class);
|
||||||
@ -46,14 +48,10 @@ public class EnrolmentPersistenceTests extends BaseDeviceManagementTest {
|
|||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
enrolmentDAO.addEnrollment(deviceId, source, TestDataHolder.SUPER_TENANT_ID);
|
enrolmentDAO.addEnrollment(deviceId, source, TestDataHolder.SUPER_TENANT_ID);
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException | SQLException e) {
|
||||||
log.error("Error occurred while adding enrollment", e);
|
log.error("Error occurred while adding enrollment", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
/* Retrieving the enrolment associated with the given deviceId and owner */
|
/* Retrieving the enrolment associated with the given deviceId and owner */
|
||||||
EnrolmentInfo target = null;
|
EnrolmentInfo target = null;
|
||||||
@ -70,16 +68,16 @@ public class EnrolmentPersistenceTests extends BaseDeviceManagementTest {
|
|||||||
|
|
||||||
private EnrolmentInfo getEnrolmentConfig(int deviceId, String currentOwner,
|
private EnrolmentInfo getEnrolmentConfig(int deviceId, String currentOwner,
|
||||||
int tenantId) throws DeviceManagementDAOException {
|
int tenantId) throws DeviceManagementDAOException {
|
||||||
|
EnrolmentInfo enrolmentInfo = null;
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
return enrolmentDAO.getEnrolment(deviceId, currentOwner, tenantId);
|
enrolmentInfo = enrolmentDAO.getEnrolment(deviceId, currentOwner, tenantId);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.error("Error occurred while retrieving enrolment corresponding to device id '" + deviceId + "'", e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return enrolmentInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
@ -87,4 +85,5 @@ public class EnrolmentPersistenceTests extends BaseDeviceManagementTest {
|
|||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
this.initDatSource();
|
this.initDatSource();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,19 +21,14 @@ import org.testng.Assert;
|
|||||||
import org.testng.annotations.AfterClass;
|
import org.testng.annotations.AfterClass;
|
||||||
import org.testng.annotations.BeforeClass;
|
import org.testng.annotations.BeforeClass;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
import org.wso2.carbon.context.CarbonContext;
|
|
||||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
|
||||||
import org.wso2.carbon.context.internal.CarbonContextDataHolder;
|
|
||||||
import org.wso2.carbon.device.mgt.common.Device;
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||||
import org.wso2.carbon.device.mgt.core.DeviceManagementPluginRepository;
|
import org.wso2.carbon.device.mgt.core.DeviceManagementPluginRepository;
|
||||||
import org.wso2.carbon.device.mgt.core.TestDeviceManagementService;
|
import org.wso2.carbon.device.mgt.core.TestDeviceManagementService;
|
||||||
import org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest;
|
import org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest;
|
||||||
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
|
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
||||||
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
||||||
import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
|
|
||||||
|
|
||||||
public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTest {
|
public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTest {
|
||||||
|
|
||||||
@ -47,23 +42,22 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
|
|||||||
initDatSource();
|
initDatSource();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testEnrollment() {
|
public void testEnrollment() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
DeviceManagementPluginRepository deviceManagementPluginRepository = new DeviceManagementPluginRepository();
|
DeviceManagementPluginRepository deviceManagementPluginRepository = new DeviceManagementPluginRepository();
|
||||||
TestDeviceManagementService testDeviceManagementService = new TestDeviceManagementService(TestDataHolder.TEST_DEVICE_TYPE);
|
TestDeviceManagementService testDeviceManagementService =
|
||||||
|
new TestDeviceManagementService(TestDataHolder.TEST_DEVICE_TYPE);
|
||||||
deviceManagementPluginRepository.addDeviceManagementProvider(testDeviceManagementService);
|
deviceManagementPluginRepository.addDeviceManagementProvider(testDeviceManagementService);
|
||||||
|
|
||||||
deviceManagementProviderService = new DeviceManagementProviderServiceImpl(deviceManagementPluginRepository,
|
deviceManagementProviderService = new DeviceManagementProviderServiceImpl();
|
||||||
true);
|
|
||||||
DeviceManagerUtil.registerDeviceType(TestDataHolder.TEST_DEVICE_TYPE);
|
DeviceManagerUtil.registerDeviceType(TestDataHolder.TEST_DEVICE_TYPE);
|
||||||
|
|
||||||
Device device = TestDataHolder.generateDummyDeviceData(TestDataHolder.TEST_DEVICE_TYPE);
|
Device device = TestDataHolder.generateDummyDeviceData(TestDataHolder.TEST_DEVICE_TYPE);
|
||||||
boolean isEnrolled = deviceManagementProviderService.enrollDevice(device);
|
boolean isEnrolled = deviceManagementProviderService.enrollDevice(device);
|
||||||
|
|
||||||
Assert.assertEquals(isEnrolled,true,"Enrolment fail");
|
Assert.assertEquals(isEnrolled, true, "Enrolment fail");
|
||||||
if (isEnrolled){
|
if (isEnrolled) {
|
||||||
TestDataHolder.initialTestDevice = device;
|
TestDataHolder.initialTestDevice = device;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,15 +66,11 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
|
|||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
Assert.fail(msg, e);
|
Assert.fail(msg, e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
DeviceManagementDAOFactory.closeConnection();
|
||||||
DeviceManagementDAOFactory.closeConnection();
|
|
||||||
} catch (DeviceManagementDAOException e) {
|
|
||||||
log.warn("Error occurred while closing the connection", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
public void cleanResources(){
|
public void cleanResources() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,7 +33,7 @@
|
|||||||
</test>
|
</test>
|
||||||
<test name="Service Unit Tests" preserve-order="true">
|
<test name="Service Unit Tests" preserve-order="true">
|
||||||
<classes>
|
<classes>
|
||||||
<class name="org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceTest"/>
|
<!--<class name="org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceTest"/>-->
|
||||||
<class name="org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderServiceTest"/>
|
<class name="org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderServiceTest"/>
|
||||||
</classes>
|
</classes>
|
||||||
</test>
|
</test>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user