revert-70aa11f8
Geeth Munasinghe 10 years ago
commit d13ffbb7c0

@ -31,26 +31,28 @@ import java.util.List;
*/
public interface DeviceManager {
public boolean enrollDevice(Device device) throws DeviceManagementException;
public boolean enrollDevice(Device device) throws DeviceManagementException;
public boolean modifyEnrollment(Device device) throws DeviceManagementException;
public boolean modifyEnrollment(Device device) throws DeviceManagementException;
public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException;
public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException;
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException;
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException;
public boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException;
public boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException;
public boolean setActive(DeviceIdentifier deviceId, boolean status) throws DeviceManagementException;
public boolean setActive(DeviceIdentifier deviceId, boolean status)
throws DeviceManagementException;
public List<Device> getAllDevices(String type) throws DeviceManagementException;
public List<Device> getAllDevices(String type) throws DeviceManagementException;
public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException;
public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException;
public boolean updateDeviceInfo(Device device) throws DeviceManagementException;
public boolean updateDeviceInfo(Device device) throws DeviceManagementException;
public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType) throws DeviceManagementException;
public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType)
throws DeviceManagementException;
public OperationManager getOperationManager(String type) throws DeviceManagementException;
public OperationManager getOperationManager(String type) throws DeviceManagementException;
}

@ -38,149 +38,169 @@ import java.util.List;
public class DeviceManagerImpl implements DeviceManager {
private static Log log = LogFactory.getLog(DeviceManagerImpl.class);
private DeviceDAO deviceDAO;
private DeviceTypeDAO deviceTypeDAO;
private DeviceManagementConfig config;
private DeviceManagementRepository pluginRepository;
public DeviceManagerImpl(DeviceManagementConfig config, DeviceManagementRepository pluginRepository) {
this.config = config;
this.pluginRepository = pluginRepository;
this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
this.deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO();
}
@Override
public boolean enrollDevice(Device device) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(device.getType());
boolean status = dms.enrollDevice(device);
try {
org.wso2.carbon.device.mgt.core.dto.Device deviceDto = DeviceManagementDAOUtil.convertDevice(device);
Integer deviceTypeId = this.getDeviceTypeDAO().getDeviceTypeIdByDeviceTypeName(device.getType());
deviceDto.setStatus(Status.ACTIVE);
deviceDto.setDeviceTypeId(deviceTypeId);
this.getDeviceDAO().addDevice(deviceDto);
} catch (DeviceManagementDAOException e) {
throw new DeviceManagementException("Error occurred while enrolling the device '" + device.getId() + "'",
e);
}
return status;
}
@Override
public boolean modifyEnrollment(Device device) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(device.getType());
boolean status = dms.modifyEnrollment(device);
try {
this.getDeviceDAO().updateDevice(DeviceManagementDAOUtil.convertDevice(device));
} catch (DeviceManagementDAOException e) {
throw new DeviceManagementException("Error occurred while modifying the device '" + device.getId() + "'",
e);
}
return status;
}
@Override
public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
return dms.disenrollDevice(deviceId);
}
@Override
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
return dms.isEnrolled(deviceId);
}
@Override
public boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
return dms.isActive(deviceId);
}
@Override
public boolean setActive(DeviceIdentifier deviceId, boolean status) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
return dms.setActive(deviceId, status);
}
@Override
public List<Device> getAllDevices(String type) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(type);
List<Device> devicesList = new ArrayList<Device>();
try {
Integer deviceTypeId = this.getDeviceTypeDAO().getDeviceTypeIdByDeviceTypeName(type);
List<org.wso2.carbon.device.mgt.core.dto.Device> devices = this.getDeviceDAO().getDevices(deviceTypeId);
for (org.wso2.carbon.device.mgt.core.dto.Device device : devices) {
DeviceType deviceType = this.deviceTypeDAO.getDeviceType(device.getDeviceTypeId());
Device convertedDevice = DeviceManagementDAOUtil.convertDevice(device, deviceType);
DeviceIdentifier deviceIdentifier = DeviceManagementDAOUtil.createDeviceIdentifier(device, deviceType);
Device dmsDevice = dms.getDevice(deviceIdentifier);
if (dmsDevice != null) {
convertedDevice.setProperties(dmsDevice.getProperties());
convertedDevice.setFeatures(dmsDevice.getFeatures());
}
devicesList.add(convertedDevice);
}
} catch (DeviceManagementDAOException e) {
throw new DeviceManagementException("Error occurred while obtaining the device for type '" + type + "'", e);
}
return devicesList;
}
@Override
public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
Device convertedDevice = null;
try {
Integer deviceTypeId = this.getDeviceTypeDAO().getDeviceTypeIdByDeviceTypeName(deviceId.getType());
org.wso2.carbon.device.mgt.core.dto.Device device =
this.getDeviceDAO().getDeviceByDeviceIdentifier(deviceTypeId, deviceId.getId());
if (device != null) {
convertedDevice = DeviceManagementDAOUtil
.convertDevice(device, this.getDeviceTypeDAO().getDeviceType(deviceTypeId));
Device dmsDevice = dms.getDevice(deviceId);
if (dmsDevice != null) {
convertedDevice.setProperties(dmsDevice.getProperties());
convertedDevice.setFeatures(dmsDevice.getFeatures());
}
}
} catch (DeviceManagementDAOException e) {
throw new DeviceManagementException(
"Error occurred while obtaining the device for id '" + deviceId.getId() + "'", e);
}
return convertedDevice;
}
@Override
public boolean updateDeviceInfo(Device device) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(device.getType());
return dms.updateDeviceInfo(device);
}
@Override
public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType)
throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
return dms.setOwnership(deviceId, ownershipType);
}
public OperationManager getOperationManager(String type) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(type);
return dms.getOperationManager();
}
public DeviceDAO getDeviceDAO() {
return deviceDAO;
}
public DeviceTypeDAO getDeviceTypeDAO() {
return deviceTypeDAO;
}
public DeviceManagementRepository getPluginRepository() {
return pluginRepository;
}
private static Log log = LogFactory.getLog(DeviceManagerImpl.class);
private DeviceDAO deviceDAO;
private DeviceTypeDAO deviceTypeDAO;
private DeviceManagementConfig config;
private DeviceManagementRepository pluginRepository;
public DeviceManagerImpl(DeviceManagementConfig config,
DeviceManagementRepository pluginRepository) {
this.config = config;
this.pluginRepository = pluginRepository;
this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
this.deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO();
}
@Override
public boolean enrollDevice(Device device) throws DeviceManagementException {
DeviceManagerService dms =
this.getPluginRepository().getDeviceManagementProvider(device.getType());
boolean status = dms.enrollDevice(device);
try {
org.wso2.carbon.device.mgt.core.dto.Device deviceDto =
DeviceManagementDAOUtil.convertDevice(device);
Integer deviceTypeId =
this.getDeviceTypeDAO().getDeviceTypeIdByDeviceTypeName(device.getType());
deviceDto.setStatus(Status.ACTIVE);
deviceDto.setDeviceTypeId(deviceTypeId);
this.getDeviceDAO().addDevice(deviceDto);
} catch (DeviceManagementDAOException e) {
throw new DeviceManagementException(
"Error occurred while enrolling the device '" + device.getId() + "'",
e);
}
return status;
}
@Override
public boolean modifyEnrollment(Device device) throws DeviceManagementException {
DeviceManagerService dms =
this.getPluginRepository().getDeviceManagementProvider(device.getType());
boolean status = dms.modifyEnrollment(device);
try {
this.getDeviceDAO().updateDevice(DeviceManagementDAOUtil.convertDevice(device));
} catch (DeviceManagementDAOException e) {
throw new DeviceManagementException(
"Error occurred while modifying the device '" + device.getId() + "'",
e);
}
return status;
}
@Override
public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
DeviceManagerService dms =
this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
return dms.disenrollDevice(deviceId);
}
@Override
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
DeviceManagerService dms =
this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
return dms.isEnrolled(deviceId);
}
@Override
public boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException {
DeviceManagerService dms =
this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
return dms.isActive(deviceId);
}
@Override
public boolean setActive(DeviceIdentifier deviceId, boolean status)
throws DeviceManagementException {
DeviceManagerService dms =
this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
return dms.setActive(deviceId, status);
}
@Override
public List<Device> getAllDevices(String type) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(type);
List<Device> devicesList = new ArrayList<Device>();
try {
Integer deviceTypeId = this.getDeviceTypeDAO().getDeviceTypeIdByDeviceTypeName(type);
List<org.wso2.carbon.device.mgt.core.dto.Device> devices =
this.getDeviceDAO().getDevices(deviceTypeId);
for (org.wso2.carbon.device.mgt.core.dto.Device device : devices) {
DeviceType deviceType = this.deviceTypeDAO.getDeviceType(device.getDeviceTypeId());
Device convertedDevice = DeviceManagementDAOUtil.convertDevice(device, deviceType);
DeviceIdentifier deviceIdentifier =
DeviceManagementDAOUtil.createDeviceIdentifier(device, deviceType);
Device dmsDevice = dms.getDevice(deviceIdentifier);
if (dmsDevice != null) {
convertedDevice.setProperties(dmsDevice.getProperties());
convertedDevice.setFeatures(dmsDevice.getFeatures());
}
devicesList.add(convertedDevice);
}
} catch (DeviceManagementDAOException e) {
throw new DeviceManagementException(
"Error occurred while obtaining the device for type '" + type + "'", e);
}
return devicesList;
}
@Override
public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
DeviceManagerService dms =
this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
Device convertedDevice = null;
try {
Integer deviceTypeId =
this.getDeviceTypeDAO().getDeviceTypeIdByDeviceTypeName(deviceId.getType());
org.wso2.carbon.device.mgt.core.dto.Device device =
this.getDeviceDAO().getDeviceByDeviceIdentifier(deviceTypeId, deviceId.getId());
if (device != null) {
convertedDevice = DeviceManagementDAOUtil
.convertDevice(device, this.getDeviceTypeDAO().getDeviceType(deviceTypeId));
Device dmsDevice = dms.getDevice(deviceId);
if (dmsDevice != null) {
convertedDevice.setProperties(dmsDevice.getProperties());
convertedDevice.setFeatures(dmsDevice.getFeatures());
}
}
} catch (DeviceManagementDAOException e) {
throw new DeviceManagementException(
"Error occurred while obtaining the device for id '" + deviceId.getId() + "'",
e);
}
return convertedDevice;
}
@Override
public boolean updateDeviceInfo(Device device) throws DeviceManagementException {
DeviceManagerService dms =
this.getPluginRepository().getDeviceManagementProvider(device.getType());
return dms.updateDeviceInfo(device);
}
@Override
public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType)
throws DeviceManagementException {
DeviceManagerService dms =
this.getPluginRepository().getDeviceManagementProvider(deviceId.getType());
return dms.setOwnership(deviceId, ownershipType);
}
public OperationManager getOperationManager(String type) throws DeviceManagementException {
DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(type);
return dms.getOperationManager();
}
public DeviceDAO getDeviceDAO() {
return deviceDAO;
}
public DeviceTypeDAO getDeviceTypeDAO() {
return deviceTypeDAO;
}
public DeviceManagementRepository getPluginRepository() {
return pluginRepository;
}
}

@ -30,45 +30,46 @@ import javax.xml.bind.Unmarshaller;
import java.io.File;
/**
* Class responsible for the cdm manager configuration initialization
* Class responsible for the cdm manager configuration initialization.
*/
public class DeviceConfigurationManager {
private DeviceManagementConfig currentDeviceConfig;
private static DeviceConfigurationManager deviceConfigManager;
private DeviceManagementConfig currentDeviceConfig;
private static DeviceConfigurationManager deviceConfigManager;
private static final String deviceMgtConfigXMLPath = CarbonUtils.getCarbonConfigDirPath() + File.separator +
DeviceManagementConstants.DataSourceProperties.DEVICE_CONFIG_XML_NAME;
private static final String deviceMgtConfigXMLPath =
CarbonUtils.getCarbonConfigDirPath() + File.separator +
DeviceManagementConstants.DataSourceProperties.DEVICE_CONFIG_XML_NAME;
public static DeviceConfigurationManager getInstance() {
if (deviceConfigManager == null) {
synchronized (DeviceConfigurationManager.class) {
if (deviceConfigManager == null) {
deviceConfigManager = new DeviceConfigurationManager();
}
}
}
return deviceConfigManager;
}
public static DeviceConfigurationManager getInstance() {
if (deviceConfigManager == null) {
synchronized (DeviceConfigurationManager.class) {
if (deviceConfigManager == null) {
deviceConfigManager = new DeviceConfigurationManager();
}
}
}
return deviceConfigManager;
}
public synchronized void initConfig() throws DeviceManagementException {
public synchronized void initConfig() throws DeviceManagementException {
//catch generic exception.if any exception occurs wrap and throw DeviceManagementException
try {
File deviceMgtConfig = new File(deviceMgtConfigXMLPath);
Document doc = DeviceManagerUtil.convertToDocument(deviceMgtConfig);
//catch generic exception.if any exception occurs wrap and throw DeviceManagementException
try {
File deviceMgtConfig = new File(deviceMgtConfigXMLPath);
Document doc = DeviceManagerUtil.convertToDocument(deviceMgtConfig);
/* Un-marshaling Device Management configuration */
JAXBContext cdmContext = JAXBContext.newInstance(DeviceManagementConfig.class);
Unmarshaller unmarshaller = cdmContext.createUnmarshaller();
this.currentDeviceConfig = (DeviceManagementConfig) unmarshaller.unmarshal(doc);
} catch (Exception e) {
throw new DeviceManagementException("Error occurred while initializing RSS config", e);
}
}
JAXBContext cdmContext = JAXBContext.newInstance(DeviceManagementConfig.class);
Unmarshaller unmarshaller = cdmContext.createUnmarshaller();
this.currentDeviceConfig = (DeviceManagementConfig) unmarshaller.unmarshal(doc);
} catch (Exception e) {
throw new DeviceManagementException("Error occurred while initializing RSS config", e);
}
}
public DeviceManagementConfig getDeviceManagementConfig() {
return currentDeviceConfig;
}
public DeviceManagementConfig getDeviceManagementConfig() {
return currentDeviceConfig;
}
}

@ -22,7 +22,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* Class for holding management repository data
* Class for holding management repository data.
*/
@XmlRootElement(name = "ManagementRepository")
public class DeviceManagementRepository {

@ -32,42 +32,42 @@ import java.io.File;
public class LicenseConfigurationManager {
private LicenseManagementConfig licenseMgtConfig;
private static LicenseConfigurationManager licenseConfigManager;
private LicenseManagementConfig licenseMgtConfig;
private static LicenseConfigurationManager licenseConfigManager;
private static final String licenseMgtConfigXMLPath = CarbonUtils.getCarbonConfigDirPath() + File.separator +
DeviceManagementConstants.Common.DEFAULT_LICENSE_CONFIG_XML_NAME;
private static final String licenseMgtConfigXMLPath =
CarbonUtils.getCarbonConfigDirPath() + File.separator +
DeviceManagementConstants.Common.DEFAULT_LICENSE_CONFIG_XML_NAME;
public static LicenseConfigurationManager getInstance() {
if (licenseConfigManager == null) {
synchronized (LicenseConfigurationManager.class) {
if (licenseConfigManager == null) {
licenseConfigManager = new LicenseConfigurationManager();
}
}
}
return licenseConfigManager;
}
public static LicenseConfigurationManager getInstance() {
if (licenseConfigManager == null) {
synchronized (LicenseConfigurationManager.class) {
if (licenseConfigManager == null) {
licenseConfigManager = new LicenseConfigurationManager();
}
}
}
return licenseConfigManager;
}
public synchronized void initConfig() throws LicenseManagementException {
public synchronized void initConfig() throws LicenseManagementException {
//catch generic exception.if any exception occurs wrap and throw LicenseManagementException
try {
File licenseMgtConfig = new File(licenseMgtConfigXMLPath);
Document doc = DeviceManagerUtil.convertToDocument(licenseMgtConfig);
//catch generic exception.if any exception occurs wrap and throw LicenseManagementException
try {
File licenseMgtConfig = new File(licenseMgtConfigXMLPath);
Document doc = DeviceManagerUtil.convertToDocument(licenseMgtConfig);
/* Un-marshaling License Management configuration */
JAXBContext cdmContext = JAXBContext.newInstance(LicenseManagementConfig.class);
Unmarshaller unmarshaller = cdmContext.createUnmarshaller();
this.licenseMgtConfig = (LicenseManagementConfig) unmarshaller.unmarshal(doc);
} catch (Exception e) {
throw new LicenseManagementException("Error occurred while initializing RSS config", e);
}
}
public LicenseManagementConfig getLicenseMgtConfig() {
return licenseMgtConfig;
}
JAXBContext cdmContext = JAXBContext.newInstance(LicenseManagementConfig.class);
Unmarshaller unmarshaller = cdmContext.createUnmarshaller();
this.licenseMgtConfig = (LicenseManagementConfig) unmarshaller.unmarshal(doc);
} catch (Exception e) {
throw new LicenseManagementException("Error occurred while initializing RSS config", e);
}
}
public LicenseManagementConfig getLicenseMgtConfig() {
return licenseMgtConfig;
}
}

@ -21,7 +21,8 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* Class for holding data source configuration in malformed-cdm-config-no-mgt-repo.xml at parsing with JAXB
* Class for holding data source configuration in malformed-cdm-config-no-mgt-repo.xml at parsing
* with JAXB.
*/
@XmlRootElement(name = "DataSourceConfiguration")
public class DataSourceConfig {

@ -22,7 +22,7 @@ import javax.xml.bind.annotation.*;
import java.util.List;
/**
* Class for hold JndiLookupDefinition of rss-manager.xml at parsing with JAXB
* Class for hold JndiLookupDefinition of rss-manager.xml at parsing with JAXB.
*/
@XmlRootElement(name = "JndiLookupDefinition")
public class JNDILookupDefinition {

@ -24,7 +24,7 @@ import org.wso2.carbon.device.mgt.core.dto.Status;
import java.util.List;
/**
* This class represents the key operations associated with persisting device related information
* This class represents the key operations associated with persisting device related information.
*/
public interface DeviceDAO {
@ -44,7 +44,8 @@ public interface DeviceDAO {
* @return the Device object which matches given data
* @throws DeviceManagementDAOException
*/
Device getDeviceByDeviceIdentifier(Integer type, String identifier) throws DeviceManagementDAOException;
Device getDeviceByDeviceIdentifier(Integer type, String identifier)
throws DeviceManagementDAOException;
List<Device> getDevices() throws DeviceManagementDAOException;

@ -19,7 +19,7 @@
package org.wso2.carbon.device.mgt.core.dao;
/**
* Custom exception class for data access related exceptions
* Custom exception class for data access related exceptions.
*/
public class DeviceManagementDAOException extends Exception {

@ -25,64 +25,69 @@ import org.wso2.carbon.device.mgt.core.config.datasource.JNDILookupDefinition;
import org.wso2.carbon.device.mgt.core.dao.impl.DeviceDAOImpl;
import org.wso2.carbon.device.mgt.core.dao.impl.DeviceTypeDAOImpl;
import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil;
import javax.sql.DataSource;
import java.util.Hashtable;
import java.util.List;
public class DeviceManagementDAOFactory {
private static DataSource dataSource;
private static final Log log = LogFactory.getLog(DeviceManagementDAOFactory.class);
private static DataSource dataSource;
private static final Log log = LogFactory.getLog(DeviceManagementDAOFactory.class);
public static DeviceDAO getDeviceDAO() {
return new DeviceDAOImpl(dataSource);
}
public static DeviceDAO getDeviceDAO() {
return new DeviceDAOImpl(dataSource);
}
public static DeviceTypeDAO getDeviceTypeDAO() {
return new DeviceTypeDAOImpl(dataSource);
}
public static DeviceTypeDAO getDeviceTypeDAO() {
return new DeviceTypeDAOImpl(dataSource);
}
public static void init(DataSourceConfig config) {
dataSource = resolveDataSource(config);
}
public static void init(DataSourceConfig config) {
dataSource = resolveDataSource(config);
}
public static void init(DataSource dtSource) {
dataSource = dtSource;
}
public static void init(DataSource dtSource) {
dataSource = dtSource;
}
/**
* Resolve data source from the data source definition
*
* @param config data source configuration
* @return data source resolved from the data source definition
*/
private static DataSource resolveDataSource(DataSourceConfig config) {
DataSource dataSource = null;
if (config == null) {
throw new RuntimeException("Device Management Repository data source configuration " + "is null and " +
"thus, is not initialized");
}
JNDILookupDefinition jndiConfig = config.getJndiLookupDefinition();
if (jndiConfig != null) {
if (log.isDebugEnabled()) {
log.debug("Initializing Device Management Repository data source using the JNDI " +
"Lookup Definition");
}
List<JNDILookupDefinition.JNDIProperty> jndiPropertyList = jndiConfig.getJndiProperties();
if (jndiPropertyList != null) {
Hashtable<Object, Object> jndiProperties = new Hashtable<Object, Object>();
for (JNDILookupDefinition.JNDIProperty prop : jndiPropertyList) {
jndiProperties.put(prop.getName(), prop.getValue());
}
dataSource = DeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), jndiProperties);
} else {
dataSource = DeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), null);
}
}
return dataSource;
}
/**
* Resolve data source from the data source definition
*
* @param config data source configuration
* @return data source resolved from the data source definition
*/
private static DataSource resolveDataSource(DataSourceConfig config) {
DataSource dataSource = null;
if (config == null) {
throw new RuntimeException(
"Device Management Repository data source configuration " + "is null and " +
"thus, is not initialized");
}
JNDILookupDefinition jndiConfig = config.getJndiLookupDefinition();
if (jndiConfig != null) {
if (log.isDebugEnabled()) {
log.debug("Initializing Device Management Repository data source using the JNDI " +
"Lookup Definition");
}
List<JNDILookupDefinition.JNDIProperty> jndiPropertyList =
jndiConfig.getJndiProperties();
if (jndiPropertyList != null) {
Hashtable<Object, Object> jndiProperties = new Hashtable<Object, Object>();
for (JNDILookupDefinition.JNDIProperty prop : jndiPropertyList) {
jndiProperties.put(prop.getName(), prop.getValue());
}
dataSource = DeviceManagementDAOUtil
.lookupDataSource(jndiConfig.getJndiName(), jndiProperties);
} else {
dataSource =
DeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), null);
}
}
return dataSource;
}
public static DataSource getDataSource() {
return dataSource;
}
public static DataSource getDataSource() {
return dataSource;
}
}

@ -22,20 +22,21 @@ import org.wso2.carbon.device.mgt.core.dto.DeviceType;
import java.util.List;
/**
* This class represents the key operations associated with persisting device type related information
* This class represents the key operations associated with persisting device type related
* information.
*/
public interface DeviceTypeDAO {
void addDeviceType(DeviceType deviceType) throws DeviceManagementDAOException;
void addDeviceType(DeviceType deviceType) throws DeviceManagementDAOException;
void updateDeviceType(DeviceType deviceType) throws DeviceManagementDAOException;
void updateDeviceType(DeviceType deviceType) throws DeviceManagementDAOException;
List<DeviceType> getDeviceTypes() throws DeviceManagementDAOException;
List<DeviceType> getDeviceTypes() throws DeviceManagementDAOException;
DeviceType getDeviceType(Integer id) throws DeviceManagementDAOException;
DeviceType getDeviceType(Integer id) throws DeviceManagementDAOException;
Integer getDeviceTypeIdByDeviceTypeName(String type) throws DeviceManagementDAOException;
Integer getDeviceTypeIdByDeviceTypeName(String type) throws DeviceManagementDAOException;
void removeDeviceType(DeviceType deviceType) throws DeviceManagementDAOException;
void removeDeviceType(DeviceType deviceType) throws DeviceManagementDAOException;
}

@ -44,15 +44,16 @@ public class DeviceDAOImpl implements DeviceDAO {
this.dataSource = dataSource;
}
@Override public void addDevice(Device device) throws DeviceManagementDAOException {
@Override
public void addDevice(Device device) throws DeviceManagementDAOException {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = this.getConnection();
String createDBQuery =
"INSERT INTO DM_DEVICE(DESCRIPTION, NAME, DATE_OF_ENROLLMENT, DATE_OF_LAST_UPDATE, OWNERSHIP," +
"STATUS, DEVICE_TYPE_ID, DEVICE_IDENTIFICATION, OWNER, TENANT_ID) VALUES " +
"(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
"INSERT INTO DM_DEVICE(DESCRIPTION, NAME, DATE_OF_ENROLLMENT, DATE_OF_LAST_UPDATE, " +
"OWNERSHIP, STATUS, DEVICE_TYPE_ID, DEVICE_IDENTIFICATION, OWNER, TENANT_ID) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
stmt = conn.prepareStatement(createDBQuery);
stmt.setString(1, device.getDescription());
@ -75,23 +76,29 @@ public class DeviceDAOImpl implements DeviceDAO {
}
}
@Override public void updateDevice(Device device) throws DeviceManagementDAOException {
@Override
public void updateDevice(Device device) throws DeviceManagementDAOException {
}
@Override public void updateDeviceStatus(Long deviceId, Status status) throws DeviceManagementDAOException {
@Override
public void updateDeviceStatus(Long deviceId, Status status)
throws DeviceManagementDAOException {
}
@Override public void deleteDevice(Long deviceId) throws DeviceManagementDAOException {
@Override
public void deleteDevice(Long deviceId) throws DeviceManagementDAOException {
}
@Override public Device getDeviceByDeviceId(Long deviceId) throws DeviceManagementDAOException {
@Override
public Device getDeviceByDeviceId(Long deviceId) throws DeviceManagementDAOException {
return null;
}
@Override public Device getDeviceByDeviceIdentifier(Integer type, String identifier)
@Override
public Device getDeviceByDeviceIdentifier(Integer type, String identifier)
throws DeviceManagementDAOException {
Connection conn = null;
PreparedStatement stmt = null;
@ -102,7 +109,8 @@ public class DeviceDAOImpl implements DeviceDAO {
String selectDBQueryForType = "SELECT ID, DESCRIPTION, NAME, DATE_OF_ENROLLMENT, " +
"DATE_OF_LAST_UPDATE, OWNERSHIP, STATUS, DEVICE_TYPE_ID, " +
"DEVICE_IDENTIFICATION, OWNER, TENANT_ID FROM DM_DEVICE " +
"WHERE DM_DEVICE.DEVICE_TYPE_ID=? AND DM_DEVICE.DEVICE_IDENTIFICATION=?";
"WHERE DM_DEVICE.DEVICE_TYPE_ID=? AND " +
"DM_DEVICE.DEVICE_IDENTIFICATION=?";
stmt = conn.prepareStatement(selectDBQueryForType);
stmt.setInt(1, type);
stmt.setString(2, identifier);
@ -132,11 +140,13 @@ public class DeviceDAOImpl implements DeviceDAO {
return device;
}
@Override public List<Device> getDevices() throws DeviceManagementDAOException {
@Override
public List<Device> getDevices() throws DeviceManagementDAOException {
return null;
}
@Override public List<Device> getDevices(Integer type) throws DeviceManagementDAOException {
@Override
public List<Device> getDevices(Integer type) throws DeviceManagementDAOException {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet resultSet = null;
@ -181,8 +191,9 @@ public class DeviceDAOImpl implements DeviceDAO {
try {
return dataSource.getConnection();
} catch (SQLException e) {
throw new DeviceManagementDAOException("Error occurred while obtaining a connection from the device " +
"management metadata repository datasource", e);
throw new DeviceManagementDAOException(
"Error occurred while obtaining a connection from the device " +
"management metadata repository datasource", e);
}
}

@ -40,121 +40,124 @@ import java.util.Hashtable;
public final class DeviceManagementDAOUtil {
private static final Log log = LogFactory.getLog(DeviceManagementDAOUtil.class);
private static final Log log = LogFactory.getLog(DeviceManagementDAOUtil.class);
public static void cleanupResources(Connection conn, PreparedStatement stmt, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
log.warn("Error occurred while closing result set", e);
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
log.warn("Error occurred while closing prepared statement", e);
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
log.warn("Error occurred while closing database connection", e);
}
}
}
public static void cleanupResources(Connection conn, PreparedStatement stmt, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
log.warn("Error occurred while closing result set", e);
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
log.warn("Error occurred while closing prepared statement", e);
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
log.warn("Error occurred while closing database connection", e);
}
}
}
/**
* Get id of the current tenant.
*
* @return tenant id
* @throws DeviceManagementDAOException if an error is observed when getting tenant id
*/
public static int getTenantId() throws DeviceManagementDAOException {
CarbonContext context = CarbonContext.getThreadLocalCarbonContext();
int tenantId = context.getTenantId();
if (tenantId != MultitenantConstants.INVALID_TENANT_ID) {
return tenantId;
}
String tenantDomain = context.getTenantDomain();
if (tenantDomain == null) {
String msg = "Tenant domain is not properly set and thus, is null";
throw new DeviceManagementDAOException(msg);
}
TenantManager tenantManager = DeviceManagementDataHolder.getInstance().getTenantManager();
try {
tenantId = tenantManager.getTenantId(tenantDomain);
} catch (UserStoreException e) {
String msg = "Error occurred while retrieving id from the domain of tenant " + tenantDomain;
throw new DeviceManagementDAOException(msg);
}
return tenantId;
}
/**
* Get id of the current tenant.
*
* @return tenant id
* @throws DeviceManagementDAOException if an error is observed when getting tenant id
*/
public static int getTenantId() throws DeviceManagementDAOException {
CarbonContext context = CarbonContext.getThreadLocalCarbonContext();
int tenantId = context.getTenantId();
if (tenantId != MultitenantConstants.INVALID_TENANT_ID) {
return tenantId;
}
String tenantDomain = context.getTenantDomain();
if (tenantDomain == null) {
String msg = "Tenant domain is not properly set and thus, is null";
throw new DeviceManagementDAOException(msg);
}
TenantManager tenantManager = DeviceManagementDataHolder.getInstance().getTenantManager();
try {
tenantId = tenantManager.getTenantId(tenantDomain);
} catch (UserStoreException e) {
String msg =
"Error occurred while retrieving id from the domain of tenant " + tenantDomain;
throw new DeviceManagementDAOException(msg);
}
return tenantId;
}
public static DataSource lookupDataSource(String dataSourceName, final Hashtable<Object, Object> jndiProperties) {
try {
if (jndiProperties == null || jndiProperties.isEmpty()) {
return (DataSource) InitialContext.doLookup(dataSourceName);
}
final InitialContext context = new InitialContext(jndiProperties);
return (DataSource) context.lookup(dataSourceName);
} catch (Exception e) {
throw new RuntimeException("Error in looking up data source: " + e.getMessage(), e);
}
}
public static DataSource lookupDataSource(String dataSourceName,
final Hashtable<Object, Object> jndiProperties) {
try {
if (jndiProperties == null || jndiProperties.isEmpty()) {
return (DataSource) InitialContext.doLookup(dataSourceName);
}
final InitialContext context = new InitialContext(jndiProperties);
return (DataSource) context.lookup(dataSourceName);
} catch (Exception e) {
throw new RuntimeException("Error in looking up data source: " + e.getMessage(), e);
}
}
/**
* @param device - The DTO device object.
* @param deviceType - The DeviceType object associated with the device
* @return A Business Object.
*/
public static org.wso2.carbon.device.mgt.common.Device convertDevice(Device device, DeviceType deviceType){
org.wso2.carbon.device.mgt.common.Device deviceBO =
new org.wso2.carbon.device.mgt.common.Device();
deviceBO.setDateOfEnrolment(device.getDateOfEnrollment());
deviceBO.setDateOfLastUpdate(device.getDateOfLastUpdate());
deviceBO.setDescription(device.getDescription());
deviceBO.setDeviceIdentifier(device.getDeviceIdentificationId());
deviceBO.setDeviceTypeId(device.getDeviceTypeId());
deviceBO.setType(deviceType.getName());
deviceBO.setName(device.getName());
deviceBO.setId(device.getId());
deviceBO.setOwner(device.getOwnerId());
deviceBO.setOwnership(device.getOwnerShip());
if (device.getStatus() == Status.ACTIVE) {
deviceBO.setStatus(true);
} else if (device.getStatus() == Status.INACTIVE) {
deviceBO.setStatus(false);
}
return deviceBO;
}
/**
* @param device - The DTO device object.
* @param deviceType - The DeviceType object associated with the device
* @return A Business Object.
*/
public static org.wso2.carbon.device.mgt.common.Device convertDevice(Device device,
DeviceType deviceType) {
org.wso2.carbon.device.mgt.common.Device deviceBO =
new org.wso2.carbon.device.mgt.common.Device();
deviceBO.setDateOfEnrolment(device.getDateOfEnrollment());
deviceBO.setDateOfLastUpdate(device.getDateOfLastUpdate());
deviceBO.setDescription(device.getDescription());
deviceBO.setDeviceIdentifier(device.getDeviceIdentificationId());
deviceBO.setDeviceTypeId(device.getDeviceTypeId());
deviceBO.setType(deviceType.getName());
deviceBO.setName(device.getName());
deviceBO.setId(device.getId());
deviceBO.setOwner(device.getOwnerId());
deviceBO.setOwnership(device.getOwnerShip());
if (device.getStatus() == Status.ACTIVE) {
deviceBO.setStatus(true);
} else if (device.getStatus() == Status.INACTIVE) {
deviceBO.setStatus(false);
}
return deviceBO;
}
public static Device convertDevice(org.wso2.carbon.device.mgt.common.Device
device) throws DeviceManagementDAOException {
Device deviceBO = new Device();
deviceBO.setDescription(device.getDescription());
deviceBO.setName(device.getName());
deviceBO.setDateOfEnrollment(device.getDateOfEnrolment());
deviceBO.setDateOfLastUpdate(device.getDateOfLastUpdate());
public static Device convertDevice(org.wso2.carbon.device.mgt.common.Device
device) throws DeviceManagementDAOException {
Device deviceBO = new Device();
deviceBO.setDescription(device.getDescription());
deviceBO.setName(device.getName());
deviceBO.setDateOfEnrollment(device.getDateOfEnrolment());
deviceBO.setDateOfLastUpdate(device.getDateOfLastUpdate());
if (!device.isStatus()){
deviceBO.setStatus(Status.INACTIVE);
}else{
deviceBO.setStatus(Status.ACTIVE);
}
deviceBO.setOwnerId(device.getOwner());
deviceBO.setOwnerShip(device.getOwnership());
deviceBO.setTenantId(DeviceManagementDAOUtil.getTenantId());
deviceBO.setDeviceIdentificationId(device.getDeviceIdentifier());
return deviceBO;
}
if (!device.isStatus()) {
deviceBO.setStatus(Status.INACTIVE);
} else {
deviceBO.setStatus(Status.ACTIVE);
}
deviceBO.setOwnerId(device.getOwner());
deviceBO.setOwnerShip(device.getOwnership());
deviceBO.setTenantId(DeviceManagementDAOUtil.getTenantId());
deviceBO.setDeviceIdentificationId(device.getDeviceIdentifier());
return deviceBO;
}
public static DeviceIdentifier createDeviceIdentifier(Device device, DeviceType deviceType) {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
deviceIdentifier.setType(deviceType.getName());
deviceIdentifier.setId(device.getDeviceIdentificationId());
return deviceIdentifier;
}
public static DeviceIdentifier createDeviceIdentifier(Device device, DeviceType deviceType) {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
deviceIdentifier.setType(deviceType.getName());
deviceIdentifier.setId(device.getDeviceIdentificationId());
return deviceIdentifier;
}
}

@ -52,112 +52,123 @@ import org.wso2.carbon.user.core.service.RealmService;
*/
public class DeviceManagementServiceComponent {
private static Log log = LogFactory.getLog(DeviceManagementServiceComponent.class);
private DeviceManagementRepository pluginRepository = new DeviceManagementRepository();
private static Log log = LogFactory.getLog(DeviceManagementServiceComponent.class);
private DeviceManagementRepository pluginRepository = new DeviceManagementRepository();
protected void activate(ComponentContext componentContext) {
try {
if (log.isDebugEnabled()) {
log.debug("Initializing device management core bundle");
}
/* Initializing Device Management Configuration */
DeviceConfigurationManager.getInstance().initConfig();
DeviceManagementConfig config = DeviceConfigurationManager.getInstance().getDeviceManagementConfig();
protected void activate(ComponentContext componentContext) {
try {
if (log.isDebugEnabled()) {
log.debug("Initializing device management core bundle");
}
/* Initializing Device Management Configuration */
DeviceConfigurationManager.getInstance().initConfig();
DeviceManagementConfig config =
DeviceConfigurationManager.getInstance().getDeviceManagementConfig();
DataSourceConfig dsConfig = config.getDeviceMgtRepository().getDataSourceConfig();
DeviceManagementDAOFactory.init(dsConfig);
DataSourceConfig dsConfig = config.getDeviceMgtRepository().getDataSourceConfig();
DeviceManagementDAOFactory.init(dsConfig);
DeviceManager deviceManager = new DeviceManagerImpl(config, this.getPluginRepository());
DeviceManagementDataHolder.getInstance().setDeviceManager(deviceManager);
DeviceManager deviceManager = new DeviceManagerImpl(config, this.getPluginRepository());
DeviceManagementDataHolder.getInstance().setDeviceManager(deviceManager);
/* If -Dsetup option enabled then create device management database schema */
String setupOption = System.getProperty(DeviceManagementConstants.Common.PROPERTY_SETUP);
if (setupOption != null) {
if (log.isDebugEnabled()) {
log.debug("-Dsetup is enabled. Device management repository schema initialization is about " +
"to begin");
}
this.setupDeviceManagementSchema(dsConfig);
}
if (log.isDebugEnabled()) {
log.debug("Registering OSGi service DeviceManagementService");
}
BundleContext bundleContext = componentContext.getBundleContext();
bundleContext.registerService(DeviceManagementService.class.getName(),
new DeviceManagementService(), null);
if (log.isDebugEnabled()) {
log.debug("Device management core bundle has been successfully initialized");
}
} catch (Throwable e) {
String msg = "Error occurred while initializing device management core bundle";
log.error(msg, e);
}
}
private void setupDeviceManagementSchema(DataSourceConfig config) throws DeviceManagementException {
DeviceManagementSchemaInitializer initializer = new DeviceManagementSchemaInitializer(config);
log.info("Initializing device management repository database schema");
try {
initializer.createRegistryDatabase();
} catch (Exception e) {
throw new DeviceManagementException("Error occurred while initializing Device Management " +
"database schema", e);
}
if (log.isDebugEnabled()) {
log.debug("Device management metadata repository schema has been successfully initialized");
}
}
/**
* Sets Device Manager service.
* @param deviceManagerService An instance of DeviceManagerService
*/
protected void setDeviceManagerService(DeviceManagerService deviceManagerService) {
if (log.isDebugEnabled()) {
log.debug("Setting Device Management Service Provider : '" +
deviceManagerService.getProviderType() + "'");
}
this.getPluginRepository().addDeviceManagementProvider(deviceManagerService);
}
/**
* Unsets Device Management service.
* @param deviceManagerService An Instance of DeviceManagerService
*/
protected void unsetDeviceManagerService(DeviceManagerService deviceManagerService) {
if (log.isDebugEnabled()) {
log.debug("Unsetting Device Management Service Provider : '" +
deviceManagerService.getProviderType() + "'");
}
this.getPluginRepository().removeDeviceManagementProvider(deviceManagerService);
}
/**
* Sets Realm Service.
* @param realmService An instance of RealmService
*/
protected void setRealmService(RealmService realmService) {
if (log.isDebugEnabled()) {
log.debug("Setting Realm Service");
}
DeviceManagementDataHolder.getInstance().setRealmService(realmService);
}
/**
* Unsets Realm Service.
* @param realmService An instance of RealmService
*/
protected void unsetRealmService(RealmService realmService) {
if (log.isDebugEnabled()) {
log.debug("Unsetting Realm Service");
}
DeviceManagementDataHolder.getInstance().setRealmService(null);
}
private DeviceManagementRepository getPluginRepository() {
return pluginRepository;
}
String setupOption =
System.getProperty(DeviceManagementConstants.Common.PROPERTY_SETUP);
if (setupOption != null) {
if (log.isDebugEnabled()) {
log.debug(
"-Dsetup is enabled. Device management repository schema initialization " +
"is about to begin");
}
this.setupDeviceManagementSchema(dsConfig);
}
if (log.isDebugEnabled()) {
log.debug("Registering OSGi service DeviceManagementService");
}
BundleContext bundleContext = componentContext.getBundleContext();
bundleContext.registerService(DeviceManagementService.class.getName(),
new DeviceManagementService(), null);
if (log.isDebugEnabled()) {
log.debug("Device management core bundle has been successfully initialized");
}
} catch (Throwable e) {
String msg = "Error occurred while initializing device management core bundle";
log.error(msg, e);
}
}
private void setupDeviceManagementSchema(DataSourceConfig config)
throws DeviceManagementException {
DeviceManagementSchemaInitializer initializer =
new DeviceManagementSchemaInitializer(config);
log.info("Initializing device management repository database schema");
try {
initializer.createRegistryDatabase();
} catch (Exception e) {
throw new DeviceManagementException(
"Error occurred while initializing Device Management " +
"database schema", e);
}
if (log.isDebugEnabled()) {
log.debug(
"Device management metadata repository schema has been successfully initialized");
}
}
/**
* Sets Device Manager service.
*
* @param deviceManagerService An instance of DeviceManagerService
*/
protected void setDeviceManagerService(DeviceManagerService deviceManagerService) {
if (log.isDebugEnabled()) {
log.debug("Setting Device Management Service Provider : '" +
deviceManagerService.getProviderType() + "'");
}
this.getPluginRepository().addDeviceManagementProvider(deviceManagerService);
}
/**
* Unsets Device Management service.
*
* @param deviceManagerService An Instance of DeviceManagerService
*/
protected void unsetDeviceManagerService(DeviceManagerService deviceManagerService) {
if (log.isDebugEnabled()) {
log.debug("Unsetting Device Management Service Provider : '" +
deviceManagerService.getProviderType() + "'");
}
this.getPluginRepository().removeDeviceManagementProvider(deviceManagerService);
}
/**
* Sets Realm Service.
*
* @param realmService An instance of RealmService
*/
protected void setRealmService(RealmService realmService) {
if (log.isDebugEnabled()) {
log.debug("Setting Realm Service");
}
DeviceManagementDataHolder.getInstance().setRealmService(realmService);
}
/**
* Unsets Realm Service.
*
* @param realmService An instance of RealmService
*/
protected void unsetRealmService(RealmService realmService) {
if (log.isDebugEnabled()) {
log.debug("Unsetting Realm Service");
}
DeviceManagementDataHolder.getInstance().setRealmService(null);
}
private DeviceManagementRepository getPluginRepository() {
return pluginRepository;
}
}

@ -28,66 +28,69 @@ import java.util.List;
public class DeviceManagementService implements DeviceManager {
@Override
public boolean enrollDevice(Device device) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().enrollDevice(device);
}
@Override
public boolean modifyEnrollment(Device device) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().modifyEnrollment(device);
}
@Override
public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager()
.disenrollDevice(deviceId);
}
@Override
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().isEnrolled(deviceId);
}
@Override
public boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().isActive(deviceId);
}
@Override
public boolean setActive(DeviceIdentifier deviceId, boolean status) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().setActive(deviceId, status);
}
@Override
public List<Device> getAllDevices(String type) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().getAllDevices(type);
}
@Override
public org.wso2.carbon.device.mgt.common.Device getDevice(DeviceIdentifier deviceId)
throws DeviceManagementException {
Device device = DeviceManagementDataHolder.getInstance().getDeviceManager().getDevice(deviceId);
return device;
}
@Override
public boolean updateDeviceInfo(Device device) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().updateDeviceInfo(device);
}
@Override
public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType)
throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager()
.setOwnership(deviceId, ownershipType);
}
@Override
public OperationManager getOperationManager(String type) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().
getOperationManager(type);
}
@Override
public boolean enrollDevice(Device device) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().enrollDevice(device);
}
@Override
public boolean modifyEnrollment(Device device) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().modifyEnrollment(device);
}
@Override
public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager()
.disenrollDevice(deviceId);
}
@Override
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().isEnrolled(deviceId);
}
@Override
public boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().isActive(deviceId);
}
@Override
public boolean setActive(DeviceIdentifier deviceId, boolean status)
throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager()
.setActive(deviceId, status);
}
@Override
public List<Device> getAllDevices(String type) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().getAllDevices(type);
}
@Override
public org.wso2.carbon.device.mgt.common.Device getDevice(DeviceIdentifier deviceId)
throws DeviceManagementException {
Device device =
DeviceManagementDataHolder.getInstance().getDeviceManager().getDevice(deviceId);
return device;
}
@Override
public boolean updateDeviceInfo(Device device) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().updateDeviceInfo(device);
}
@Override
public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType)
throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager()
.setOwnership(deviceId, ownershipType);
}
@Override
public OperationManager getOperationManager(String type) throws DeviceManagementException {
return DeviceManagementDataHolder.getInstance().getDeviceManager().
getOperationManager(type);
}
}

@ -27,8 +27,10 @@ import org.wso2.carbon.device.mgt.core.internal.LicenseManagementDataHolder;
public class LicenseManagementService implements LicenseManager {
@Override
public License getLicense(String deviceType, String languageCode) throws LicenseManagementException {
return LicenseManagementDataHolder.getInstance().getLicenseManager().getLicense(deviceType, languageCode);
}
@Override
public License getLicense(String deviceType, String languageCode)
throws LicenseManagementException {
return LicenseManagementDataHolder.getInstance().getLicenseManager()
.getLicense(deviceType, languageCode);
}
}

@ -29,20 +29,21 @@ import java.io.File;
public final class DeviceManagementSchemaInitializer extends DatabaseCreator {
private static final Log log = LogFactory.getLog(DeviceManagementSchemaInitializer.class);
private static final String setupSQLScriptBaseLocation =
CarbonUtils.getCarbonHome() + File.separator + "dbscripts" + File.separator + "cdm" + File.separator;
public DeviceManagementSchemaInitializer(DataSourceConfig config) {
super(DeviceManagerUtil.resolveDataSource(config));
}
protected String getDbScriptLocation(String databaseType) {
String scriptName = databaseType + ".sql";
if (log.isDebugEnabled()) {
log.debug("Loading database script from :" + scriptName);
}
return setupSQLScriptBaseLocation.replaceFirst("DBTYPE", databaseType) + scriptName;
}
private static final Log log = LogFactory.getLog(DeviceManagementSchemaInitializer.class);
private static final String setupSQLScriptBaseLocation =
CarbonUtils.getCarbonHome() + File.separator + "dbscripts" + File.separator + "cdm" +
File.separator;
public DeviceManagementSchemaInitializer(DataSourceConfig config) {
super(DeviceManagerUtil.resolveDataSource(config));
}
protected String getDbScriptLocation(String databaseType) {
String scriptName = databaseType + ".sql";
if (log.isDebugEnabled()) {
log.debug("Loading database script from :" + scriptName);
}
return setupSQLScriptBaseLocation.replaceFirst("DBTYPE", databaseType) + scriptName;
}
}

@ -50,8 +50,9 @@ public final class DeviceManagerUtil {
DocumentBuilder docBuilder = factory.newDocumentBuilder();
return docBuilder.parse(file);
} catch (Exception e) {
throw new DeviceManagementException("Error occurred while parsing file, while converting " +
"to a org.w3c.dom.Document : " + e.getMessage(), e);
throw new DeviceManagementException(
"Error occurred while parsing file, while converting " +
"to a org.w3c.dom.Document : " + e.getMessage(), e);
}
}
@ -65,23 +66,28 @@ public final class DeviceManagerUtil {
DataSource dataSource = null;
if (config == null) {
throw new RuntimeException(
"Device Management Repository data source configuration " + "is null and thus, is not initialized");
"Device Management Repository data source configuration " +
"is null and thus, is not initialized");
}
JNDILookupDefinition jndiConfig = config.getJndiLookupDefinition();
if (jndiConfig != null) {
if (log.isDebugEnabled()) {
log.debug(
"Initializing Device Management Repository data source using the JNDI " + "Lookup Definition");
"Initializing Device Management Repository data source using the JNDI " +
"Lookup Definition");
}
List<JNDILookupDefinition.JNDIProperty> jndiPropertyList = jndiConfig.getJndiProperties();
List<JNDILookupDefinition.JNDIProperty> jndiPropertyList =
jndiConfig.getJndiProperties();
if (jndiPropertyList != null) {
Hashtable<Object, Object> jndiProperties = new Hashtable<Object, Object>();
for (JNDILookupDefinition.JNDIProperty prop : jndiPropertyList) {
jndiProperties.put(prop.getName(), prop.getValue());
}
dataSource = DeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), jndiProperties);
dataSource = DeviceManagementDAOUtil
.lookupDataSource(jndiConfig.getJndiName(), jndiProperties);
} else {
dataSource = DeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), null);
dataSource =
DeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), null);
}
}
return dataSource;

Loading…
Cancel
Save